一、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函數也返回一個生成器對象