一、if语句
1.多路分支
if 条件1:
代码块1
elif 条件2:
代码块2
else:
代码块3
#python会执行第一次测试为真的语句,如果所有测试都为假,就执行else部分(本例)
2.三元表达式(短路运算)
x = y if a else z
# 只有条件a为真,才会执行x = y
#假设y是bool真值
x = (a and y) or z
二、while循环
1.break、continue、pass和else
- break跳出本层循环
- continue结束本次代码块的执行,跳到本层循环开头
- pass什么也不做,空的占位语句 (无限循环while True:pass)
- else 只有当循环正常离开才会执行(也就是说,不是由于break导致循环结束)
三、for循环
for循环首行定义了一个(或一些)赋值目标,以及想要遍历的对象,后面是要重复的语句。
赋值目标的变量名通常是for语句所在作用域的变量,它可以在循环主体中修改,但是当再次回到循环顶端时,会自动设成序列中的下一个元素。
for i in range(0,5):
print(i)
i = 3
执行结果:
0
1
2
3
4
for 语句也支持一个选用的else块,和while 一样:如果循环结束不是由于break导致的,就会执行else块。(即序列中所有元素都访问过了)
for <target> in <object>:
<statments>
if <test>:bresk
if <test>:continue
else;
<statments>
并行遍历:zip和map函数
L1=[1,2,3]
L2=[4,5,6]
for i,j in L1,L2:
print(i,j)
报错:
ValueError: too many values to unpack (expected 2)
# ---------------------------------------------------------------
for (i,j) in zip(L1,L2);
print(i,j)
运行结果:
1 4
2 5
3 6
# ---------------------------------------------------------------
for i in map(ord,'abc'):
print(i)
运行结果:
97
98
99
#map函数返回一个生成器对象
产生偏移和元素:enumerate
for i in enumerate('abc'):
print(i)
运行结果:
(0, 'a')
(1, 'b')
(2, 'c')
#enumerate函数也返回一个生成器对象