190811python学习笔记
2019-08-12 本文已影响1人
f9fa28843d13
# -*- coding: utf-8 -*-
"""
Created on Sun Aug 11 15:38:25 2019
@author: Administrator
"""
#python入门
'''
高级编程语言:
1.静态语言:编译方式执行c/java,编译器
输入--->程序执行--->输出
^
|
高级语言源代码--->编译器--->机器语言:目标代码
2.脚本语言解释方式执行js/php/python,解释器
高级语言源代码--->解释器----->输出
输入----------- >
--------------->编译速度更快
'''
#print('hello python world')
#a=100
#a+=1
#print(a)
#输入exit()或者quit()即可退出
#判断输入整数是否在[0,100]之间
#num=eval(input('请输入一个整数:'))
#if num>100 or num<0:
# print('不在')
#else:
# print('在')
#cmd.exe下python code.py
#程序发布:没有安装python解释器的无法直接运行Python程序,需要将python源代码打包变成可执行文件
'''
IPO程序编写方法
输入数据input
处理数据process/算法:计算问题的处理方法
输出数据output
'''
# =============================================================================
# python程序的特点:
# 1.通用性
# 2.语法简洁
# 3.生态高产
# 4.平台无关、强制可读、支持中文
# =============================================================================
#斐波那契数列的计算
#F(0)=0,F(1)=1,F(n)=F(n-2)+F(n-1),n>=2
#CalFibonacci.py
#a,b=0,1
#while a<1000:
# print(a,end=',')
# a,b=b,a+b
#以上不太懂,但能算出来
#圆面积的计算:根据圆的半径计算圆的面积
#CalCircleArea.py
# ================错误的===================================================
# r=eval(input('请输入圆的半径:'))#圆的半径
# area=3.1415926*float(r)^2
# print('圆的面积是:'+str(area))
#================正解,计算圆的面积=========================================
# =============================================================================
# r=eval(input('请输入圆的半径:'))
# area=3.1415926*r*r
# print('圆的面积是:'+str(area))
# #如果要求只输出两位小数怎么办
# print('{:.2f}'.format(area))
# print('圆的面积是:'+'{:.2f}'.format(area))
# =============================================================================
#绘制五角红星
# =============================================================================
#DrawStar.py
#import turtle
#from turtle import *
#color('red','green')#前边是线条颜色,后边是填充颜色
#begin_fill()
#for i in range(5):
# fd(350)
# rt(144)
#end_fill()
#done()
# =============================================================================
# ===============程序运行计时:一个循环技术一千万次的程序===========================================
#CalRunTime.py
#import time
#limit=10*1000*1000
#start=time.perf_counter()
#while True:
# limit-=1
# if limit <= 0:
# break
#delta=time.perf_counter()-start
#print('程序开始时间是:{}'.format(start))
#print('程序开始时间是:'+str(start))
#print('程序运行时间是:{}秒'.format(delta))
# =============================================================================
# ==============绘制七彩圆圈:绘制7个不同颜色的圆圈,组成七彩圆圈图案===============================================
#DrawSevenColorfulCircles.py
# =============================================================================
# import turtle
# colors=['red','orange','yellow','green','blue','indigo','purple']
# for i in range(7):
# c=colors[i]
# turtle.color(c,c)
# turtle.begin_fill()
# turtle.rt(360/7)
# turtle.circle(50)
# turtle.end_fill()
# turtle.done()
# # =============================================================================
# =============================================================================
# ======================彩色螺旋线的绘制=======================================
#import turtle
#import time
#turtle.pensize(2)
#turtle.bgcolor('black')
#colors=['red','yellow','purple','blue']
#turtle.tracer(False)
#for x in range(400):
# turtle.forward(2*x)
# turtle.color(colors[x%4])
# turtle.left(91)
#turtle.left(91)
#turtle.tracer(True)
# =============================================================================
# =============================================================================
#
# =============螺旋线绘制=========================================
#import turtle
#import time
#turtle.speed('fastest')
#turtle.pensize(2)
#for x in range(100):
# turtle.forward(2*x)
# turtle.left(90)
#time.sleep(3)
#基本输入输出函数:input()/eval()/print()
#源程序的书写风格
#python语言采用严格的'缩进'来表明程序的格式框架
#1个缩进=4个空格
#缩进是python语言中表明程序框架的唯一手段
'''
当表达分支、 循环、 函数、 类等程序含义时,
在if、 while、 for、 def、 class等保留字所在完整
语句后通过英文冒号( :) 结尾并在之后进行缩
进, 表明后续代码与紧邻无缩进语句的所属关
系。
'''
# =============================================================================
# 你=1
# 你+=2
# print(你)
# =============================================================================
'''
Python语言允许采用大写字母、 小写字母、 数
字、 下划线(_)和汉字等字符及其组合给变量命
名, 但名字的首字符不能是数字, 中间不能出
现空格, 长度没有限制
'''
'''
注意: 标识符对大小写敏感, python和Python
是两个不同的名字
'''
# ==================保留字============================================
# and elif import raise
# as else in return
# assert except is try
# break finally lambda while
# class for nonlocal with
# continue from not yield
# def global or True
# del if pass False
# None
# =============================================================================
# ===================数据类型=============================================
#数字类型:整数、浮点数、复数(整数、实数、复数a+bj)
#字符串类型:引号括起来的
#字符串中的序号体系:
#0 1 2 3 4 5 6 7 8 9 10
#-11 -10……-3 -2 -1
#字符串长度为L:
#0------>L-1
#-L----->-1
#元组类型:
#集合类型:
#列表类型:
#字典类型:
# =============================================================================
# =============================================================================
# str='对酒当歌,人生几何?'
# pat=str[1]
# print(pat)
# print(str[-1])
# =============================================================================
#可以采用[N:M]格式获取字符串的子串,这个操作被形象的称为切片
#[N:M]获取N——M-1,切片右边的不包括,不包含M
#str='譬如朝露,去日苦多。'
#print(str[2:4])
#print(str[5:-2])
#可以通过Python默认提供的len()函数获取字符串
#的长度, 一个中文字符和西文字符的长度都记为1。
#<变量> = <表达式>,=赋值语句
'''
同步赋值语句: 同时给多个变量赋值
<变量1>, …, <变量N> = <表达式1>, …, <表达式N>
'''
#将变量x和y交换
#算法:通过一个临时变量t缓存x的原始值,将y值赋给x,再将x的原始值通过t赋值给y
# =============================================================================
# x=1
# y=2
# t=x
# x=y
# y=t
# print(x,y)
# =============================================================================
#同步赋值语句:
# =============================================================================
# x,y=1,2
# x,y=y,x #内部会存在一个地方,内部可能有个临时变量
# print(x,y)
# =============================================================================
#import <功能库名称>
#引用功能库之后, 采用<功能库名称>.<函数名称>()
#方式调用具体功能。
# =============================================================================
# if <条件>:
# <语句块>
# =============================================================================
# =============================================================================
# num=eval(input('请输入一个数:'))
# if 0<=num<=100:
# print('数在0-100之间,含')
# else:
# print('数不在0-100之间')
# =============================================================================
#循环语句包括:遍历循环、条件循环
#输出10-100步长为3的全部整数
# =============================================================================
# n=10
# while n<=100:
# print(n,end=' ')
# #print(n,end='')
# n+=3
# =============================================================================
# =============================================================================
# while (<条件>):
# <语句块1>
# <语句块2>
# =============================================================================
#a = input("请输入一个小数: ")
#print(a)
#<变量> = input(<提示性文字>)
#eval(<字符串>)函数是Python语言中一个十分重
#要的函数, 它能够以Python表达式的方式解析并
#执行字符串, 将返回结果输出
#注意eval(字符串)里面是字符串
#a=eval('字符串')
#a = eval("1.2 + 3.4")
#print(a)
#print()函数的三种用法:
#1.print(<待输出字符串>,<待输出字符串>)
#2.print(<变量1>, <变量2>,…, <变量n>)
#3.用于混合输出字符串与变量值:print(<输出字符串模板>.format(<变量1>, <变量2>,…, <变量n>))
#a,b=123.456,1024
#print('数字{}和数字{}的乘积是{}'.format(a,b,a*b))
#对print()函数的end参数进行赋值,print(<待输出内容>, end="<增加的输出结尾>")
#a=24
#print(a,end='.')
#print(a,end='%')
#实例:采用倒叙的方法将输入内容输出出来
#a='To be or not to be,that is a question.--Shakespear'
#print()
# ==============以下这段代码是错误的===================================
# a=eval(input('请输入一段文本:'))
# i=len(a)-1
# while i>=0:
# print(a[i],end='')
# =============================================================================
# ================倒背如流,这段代码是正确的============================================
# a=input('请输入一段文本:')
# i=len(a)-1
# while i>=0:
# print(a[i],end='')
# i-=1
# =============================================================================
# =====================right===========================================
# a=input('请输入一段文本:')
# i=-1
# while i >=-len(a):
# print(a[i],end='')
# i-=1
# =============================================================================
# ==================保留字============================================
# and elif import raise
# as else in return
# assert except is try
# break finally lambda while
# class for nonlocal with
# continue from not yield
# def global or True
# del if pass False
# None
# ===========================================
# ============基本数据类型========================================
#
# =============================================================================
#不带小数点,整数类型
#带小数点,浮点数类型
#a+bj复数类型
#进制种类 引导符号 描述
#十进制 无 默认情况, 例: 1010,-1010
#二进制 0b 或 0B 由字符0和1组成, 例: 0b1010, 0B1010
#八进制 0o 或 0O 由字符0到7组成, 例: 0o1010, 0O1010
#十六进制 0x 或 0X 由字符0到9、 a到f或A到F组成, 例: 0x1010
# =============================================================================
#0b二进制0o八进制0x十六进制 ,不同进制的整数之间可以直接运算
# =============================================================================
#print(1.01e3)
#print(1.01e-3)
#<a>e<b> = a*10^b
#print(-1.01e-3)
#Python语言中, 复数可以看作是二元有序实数对
#(a, b) , 表示为: a + bj, 其中, a是实数部分,
#简称实部, b是虚数部分, 简称虚部。 虚数部分通
#过后缀“J”或者“j”来表示。 需要注意, 当b为1时,
#1不能省略, 即 1j表示复数, 而j则表示Python程序
#中的一个变量。
#虚数部分为1时,不能省略
#复数类型中实部和虚部都是浮点类型, 对于复数z, 可以用
#z.real和z.imag分别获得它的实数部分和虚数部分
#(复数).real实数部分
#(复数).imag虚数部分
#a=(1.23e4+5.67e4j).real
#print('实数部分等于{}'.format(a))
#b=(1.23e4+5.67e4j).imag
#print('虚数部分等于{}'.format(b))
#print('实数部分和虚数部分相加等于{}'.format(a+b))
#Python提供了9个基本的数值运算操作符
#x // y x与y之整数商, 即: 不大于x与y之商的最大整数--->只保留整数
#x % y x与y之商的余数, 也称为模运算--->只保留余数,模运算
#x**yx的y次幂,乘方运算
#加减乘除,正负
#上标所有二元运算操作符(+、 -、 *、 /、 //、 %、 **) 都可
#以与等号(=) 相连, 形成增强赋值操作符(+=、 -=、 *=、
#/=、 //=、 %=、 **=) 。 用op表示这些二元运算操作符, 增
#强赋值操作符的用法如下:
#x op= y 等价于 x = x op y
# =======================运算规则=========================================
# 整数和浮点数混合运算, 输出结果是浮点数;
# 整数之间运算, 产生结果类型与操作符相关, /运算的结果
# 是浮点数;
# 整数或浮点数与复数运算, 输出结果是复数。
# =============================================================================
#Python解释器提供了一些内置函数, 在这些内置函
#数之中, 有6个函数与数值运算相关:
#abs(x) x的绝对值
#divmod(x, y) (x//y, x%y), 输出为二元组形式(也称为元组类型)
#pow(x, y[, z]) (x**y)%z, [..]表示该参数可以省略, 即: pow(x,y), 它与x**y相同
#round(x[, ndigits]) 对x四舍五入, 保留ndigits位小数。 round(x)返回四舍五入的整数值
#max(x1, x2, …, xn) x1, x2, …, xn的最大值, n没有限定
#min(x1, x2, …, xn) x1, x2, …, xn的最小值, n没有限定
#字符串:
#1.单行:1对单、1对双
#2.多行:1对三单、三双
#多行字符串可以由一对三单引号(''') 或三双引
#号(""") 作为边界来表示, 两者作用相同。
#print('这是"单行字符串"')
#print("这是'单行字符串'")
#print("这是'单行字符串'")
##里单外双或者外双里单,不然会报错
#print('''这是"多行字符串"的第一行
#这是"多行字符串"的第二行
#''')
#print('''这是'多行字符串'的第一行
#这是"多行字符串"的第二行
#''')#这个随便
#Python语言转义符: \
#例如: \n表示换行、 \\表示反斜杠、 \'表示单引
#号、 \"表示双引号、 \t表示制表符(TAB) 等。
#print("既需要'单引号'又需要\"双引号\"")
#字符串的索引:<字符串或字符串变量>[序号]
#如果字符串长度为L, 正向递增需要以最左侧字符序号为0,
#向右依次递增, 最右侧字符序号为L-1; 反向递减序号以最
#右侧字符序号为-1, 向左依次递减, 最左侧字符序号为-L
#字符串的切片:对字符串中某个子串或区间的检索被称为切片
#<字符串或字符串变量>[N: M],不包括M
# ================format()的使用========================================
# <模板字符串>.format(<逗号分隔的参数>)
# =============================================================================
#a="{}曰: 学而时习之, 不亦说乎。 ".format("孔子")
#print(a)
#b="{}曰: 学而时习之, 不亦{}。 ".format("孔子","说乎")
#print(b)
#模板字符串槽中可以指定顺序,format参数的序号从0开始
#a="{1}曰: 学而时习之, 不亦{0}。 ".format("说乎","孔子")
#print(a)
#b="{0}曰: 学而时习之, 不亦{1}。 ".format("说乎","孔子")
#print(b)
#format()方法的格式控制