- 順序執行
按照先後順序一條一條執行,默認的執行順序是從左至右,從上至下 - 分支
根據不同的情況,條件滿足才執行條件下的語句 - 循環
只要滿足某個條件,此條件下的語句就反覆執行,直至條件不再滿足
分支
單分支
if condition:
action
action
...
>>> if 1:
print ('hello world')
hello world ##默認情況下條件爲真,因此執行輸出語句
>>> if 0:
print ('hello world') ##輸出語句只有在假的狀態下才會執行,但是實際狀態爲真,因此此語句不執行
>>> if 1<2:
print ('1 is less than 2')
1 is less than 2 ##條件滿足,執行輸出
注意:
(1)condition必須是一個布爾值,這個地方有一個隱式的轉換bool(condition)
(2)if語句最後需要以英文冒號:
結尾,冒號後面的語句需要另起一行,並且需要縮進
- if,for,def,class等關鍵字後面都可以跟代碼塊
- 這些語句後面可以嵌套,比如再接一個
if 2<3:pass
多分支
if condition1:
action
elif condition2:
action
elif condition3:
action
...
else: ##條件語句需要閉環,經常由else完成此種功能
action
>>> score=72
if score<60 and score >0:
print ("you don't pass this exam")
elif score >=60 and score <= 90:
print('you have passed this exam')
elif score > 90 and score <= 100:
print ('excellent!')
else:
print ('your score is wrong')
you have passed this exam ##根據條件的匹配,因此輸出了第二個條件中的語句
`嵌套:`
>>> a=0
if a<0:
print ('a is less than zero')
else: ##在此分支下開啓嵌套模式
if a==0:
print('a is zero')
else:
print ('a is greater than zero')
循環
while循環
while主要用於死循環,或者不能明確知道循環次數的場景
while crond:
block
while True: #死循環
pass #pass語句主要用於程序的架構,無實質意義
a=10
while a:
print(a)
a-=1
for語句
for element in iteratable: # 可迭代對象中有元素可以迭代,進入循環體
block
for i in range(0,10): # range爲序列函數,左閉右開區間,[0,10)
print(i)
# 計數器
for i in range(0): #區間爲[0,0),因此此語句無輸出
print(i)
print('---------')
for i in range(-2): #計數器中i>=0因此此語句也無輸出
print(i)
print('---------')
for i in range(1): #此語句有輸出[0,1)
print(i)
# 打印偶數
for i in range(0, 10):
if i % 2 == 0 :
print(i)
for i in range(0, 10, 2):
print(i)
# 打印奇數
for i in range(0, 10):
if i % 2 != 0 :
print(i)
for i in range(1, 10, 2):
print(i)
使用邏輯與來判斷奇偶數:
for i in range(0,10):
if i & 1: #與1逐位與運算並且爲真的數必然爲奇數
print(i)
#continue用法
for i in range(0,10):
if i & 1: #先匹配出奇數
continue #遇到奇數則跳過
else:
print(i) #成功輸出偶數
#break用法
count=0
for i in range(7,1000,7):
print(i)
count+=1
if count>=20:
break #直接結束循環
for i in range(10):
print(i)
break ##在輸出第一個數字0之後立即退出循環,因此本程序只輸出一個0
for i in range(20):
print(i)
if i>=10:
break #break雖然在if條件語句下,但是break在執行時的生效對象是for循環
注意:continue和break只對循環有效,即使他們放在了條件判斷語句下,生效對象也是其上層的循環