缩进、注释、命名、变量、保留字
数据类型、字符串、整数、浮点数、列表
赋值语句、分支语句、函数
input()、print()、eval()及print格式化
turtle绘图体系、import用法
pen、circle、turtle的相关函数
循环语句、for in range
数据类型:整数<<浮点数<<复数
数据类型运算操作符、运算函数
字符串类型的表示、索引、切片
字符串操作符、处理函数、处理办法、format格式化
time库:time()、strftime()、strptime()、sleep()
if <条件>:
<语句>
if <条件>:
<语句1>
else:
<语句2>
注意–紧凑形式:<表达式1> if <条件> else <表达式2>
紧凑形式中使用表达式,而非带赋值过程的语句
注意:①多条件间的包含关系
②变量取值范围的覆盖
and or not
< > <= >= == !=
解决办法:
try:
<语句块1>
except<异常类型>:
<语句块2>
异常处理的高级使用:(增加程序的鲁棒性)
try:
<语句块1>
except:
<语句块2> # 语句块2在发生异常时执行
else:
<语句块3> # 语句块3在不发生异常时执行(奖励性)
finally:
<语句块4> # 对应语句块4一定执行
同时从用户获得两个输入
a,b=eval(input(“请输入A和B【使用逗号隔开】”))
注意:多分支的条件交叉覆盖
for <循环变量> in <循环结构> :
<语句块>
①计数循环(N次)
for i in range (N)
分别设 i = 0~N-1 时执行语句
注意:range (m,n,k) 即 m~n-1, 以k为步长
②字符串遍历循环
for c in s
#将s中的每个字符按照顺序赋值给c,然后执行语句
③列表遍历循环
for item in [‘ABC’,123,666]
④文件遍历循环
for line in fi
#fi 为文件标识符
#遍历整个文件的每一行
即由条件控制的循环运行方式,满足条件则无限执行
while <条件>:
<语句块>
break:跳出结束当前整个循环,并执行后续语句
continue:跳出结束当前一次循环,继续执行后续次数的循环
#(一个break只能跳出一层循环)
s="PYTHON"
while s != "":
for c in s:
if c == T:
break
print(c,end="")
s=s[:-1]
最外循环为while s != “” 即字符串s不为空
字符串s每进行一次while循环,去掉s最末端的字符
while.1-for.1 :c=P,c!=P,print(c)=> P
while.1-for.2 :c=H,c!=P,print(c)=> Y
while.1-for.3 :c=T,c!=P,break,第一次while循环结束
s=s[:-1] => s=“PYTHO”
while.2-for.1 :c=P,c!=P,print(c)=> P
while.2-for.2 :c=H,c!=P,print(c)=> Y
while.2-for.3 :c=T,c!=P,break,第二次while循环结束
s=s[:-1] => s=“PYTH”
while.3-for.1 :c=P,c!=P,print(c)=> P
while.3-for.2 :c=H,c!=P,print(c)=> Y
while.3-for.3 :c=T,c!=P,break,第三次while循环结束
s=s[:-1] => s=“PYT”
while.4-for.1 :c=P,c!=P,print(c)=> P
while.4-for.2 :c=H,c!=P,print(c)=> Y
while.4-for.3 :c=T,c!=P,break,第四次while循环结束
s=s[:-1] => s=“PY”
while.5-for.1 :c=P,c!=P,print(c)=> P
while.5-for.2 :c=H,c!=P,print(c)=> Y
第五次while循环结束
s=s[:-1] => s=“P”
while.6-for.1 :c=P,c!=P,print(c)=> P
第六次while循环结束
s=s[:-1] => s=""
while循环条件不满足,程序结束
for/while ~:
<语句块>
else:
<语句块>
#当循环没有被break跳出时,执行完for/while循环后
#执行else语句,可以理解为正确循环的奖励
#random是使用随机数的python标准库
#伪随机数、梅森螺旋算法
#随机数种子,唯一确定了随机序列
random.seed(a) #选出a对应的随机序列
random.random() #产生一个0.0~1.0之间的随机数
#不给出种子,直接给出随机数,则程序无法复现
①randint(a,b) >>> 产生一个[a,b]之间的随机整数
②randrange(m,n[,k]) >>> [m,n)之间步长为k的随机整数
③getrandbits(k) >>> 产生一个k比特长的随机整数
④uniform(a,b) >>> 产生一个[a,b]之间的随机小数
⑤choice(seq) >>> 序列seq中随机抽一个元素///seq可以为列表
⑥shuffle(seq) >>> 将序列seq中元素随机排列,返回打乱的序列
#CalPiV1.py
pi=0
N=100
for k in range(N):
pi += 1/pow(16,k)*(4/(8*k+1)-\
2/(8*k+4)-1/(8*k+5)-1/(8*k+6))
print("圆周率是:{}".format(pi))
#CalPiV2.py
from random import random
from time import perf_counter
DARTS = 1000*1000
hits = 0
start = perf_counter()
for i in range (1,DARTS+1):
x,y = random(),random()
dist = pow(x**2+y**2,0.5)
if dist <= 1.0:
hits = hits+1
pi = 4*(hits/DARTS)
print("圆周率值是:{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter()-start))