1、for循环和可迭代对象遍历
for 循环通常用于可迭代对象的遍历
for 变量 in 可迭代对象:
循环体语句
python包含以下几种可迭代对象:1、序列(字符串、列表、元组);2、字典;3、迭代器对象(iterator);4、生成器函数(generator)
2、字典的遍历
for x in d.keys()
for x in d.values()
for x in d.items()
3、range对象 range是一个迭代器对象
4、1~100奇、偶数和
sum_all=0
sum_odd=0
sum_even=0
for x in range(100):
sum_all+=x
if x%2==1:
sum_odd+=x
else:
sum_even+=x
print(‘1~100累加总和{0},奇数和{1},偶数和{2}’,format(sum_all,sum_odd,sum_even))
4、循环嵌套
for x in range(5):
for y in range(5): #每行有5个x,x从0开始有5个
print(x,end=’\t’)
print(’\n’) #起到换行作用
结果:
00000
11111
22222
33333
44444
5、九九乘法表
for m in range(1,10):
for n in range(1,m+1): #只显示下三角,n 的值不大于m
print('{0}*{1}={2}'.format(m,n,m*n),end='\t')
print() #起到换行作用
6、break 语句可用于while和for循环。当有嵌套循环时,break语句只能跳出最近一层的循环。
7、while、for 语句可以附带一个else语句(可选)。如果for、while语句没有被break语句结束,则执行else语句,否则不执行。
while 条件表达式:
循环体
else:
语句块
8、循环代码优化
准则:
1、尽量减少循环内不必要的计算;
2、嵌套循环中,尽量减少内层循环的计算,尽可能向外提;
3、局部变量查询较快,尽量使用局部变量。
其他优化手段:
1、连接多个字符串,使用join()函数而不是+
2、列表进行元素的插入和删除,尽量在列表的尾部操作
9、zip()的并行迭代
names={‘高淇,‘高老二’,‘高老三’,‘高老四’’}
ages={18,16,20,25}
jobs={‘老师’,‘程序员’,‘公务员’}
for name,age,job in zip(names,ages,jobs):
print(’{0}-{1}-{2}’.format{name,age,job})
for i in range(3):
print{’{0}-{1}-{2}’.format(names[i],ages[i],jobs[i])}
10、推导式穿件序列_列表推导式_字典推导式
cells=[(row,col)for row in range(1,10) for col in range(1,10)]
print(cells)
生成器推导式(生成元组)
(x for x in range(1,100) if x%9==0)
一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代发现数据已经没有了。
gnt=(x for x in range(4))
print(tuple(gnt))
print(tuple(gnt))
结果:(0,1,2,3)
() 空的
11、画多个同心圆环
t=turtle.Pen()
t.speed(0)
t.width(4)
my_colors=(‘red’,‘green’,‘yellow’,‘black’)
for i in range(100): #0,1,2,3,4
t.penup()
t.goto(0,-i10) #0,-100,-200,-300,-400
t.pendown()
t.color(my_colors[i%len(my_colors)])
t.circle(15+i10) #100,200,300,400,500
turtle.done() #执行完串口依旧在
12、函数遇到return()结束
原文链接:https://blog.csdn.net/wang_chao118/article/details/106871947