07.判斷和迴圈語句
程式的執行流程分為三種結構:順序結構(之前我們寫的程式碼都是順序結構)、分支結構(用到if判斷)、迴圈結構(用到while與for)
1.if 判斷語句
Python條件語句是通過一條或多條語句的執行結果(True或者False)來決定執行的程式碼塊。
1.1 if 語句
#if 判斷條件:
# 執行語句1
#判斷條件為True執行的語句1
age=20
if age>=18:
print('已成年')
1.2 if-else語句
#if 判斷條件:
# 執行語句1
#else:
# 執行語句2
#判斷條件為True執行的語句1
#判斷條件為False時執行語句2
age=int(input("請輸入你的年齡"))
if age>=18:
print('已成年')
else:
print('未成年')
1.3 if-elif-else
程式設計時常常需要判斷一系列的條件,一旦某個條件為真時就立即停止,這總情況可以採用 if-elif-else語句其一般形式如下:
if 判斷條件1:
執行語句1
elif 判斷條件2:
執行語句2
elif 判斷條件3:
執行語句3
else:
執行語句4
依次判斷條件,當滿足某個條件時執行其相對應的語句塊
如果都不滿足則執行最後的else對應的語句塊,然後在執行後續程式
score=int(input("請輸入成績")) if score >= 90: print('優秀') elif score >= 80: print('良好') elif score >= 70: print('普通') else: print('很差')
1.4 巢狀if語句
在if語句中又包含一個或者多個if語句時,稱為if語句的巢狀
if 判斷條件1:
if 判斷條件2:
執行語句1
else:
執行語句2
else:
if 判斷條件3:
執行語句3
else:
執行語句4
2.迴圈語句
什麼是迴圈語句語句?
迴圈結構就是重複執行某段程式碼塊
2.1 while迴圈語句
while 判斷條件:
語句塊 #迴圈體
當判斷條件為真時執行迴圈體:
在接著判斷條件,如果為真,繼續執行迴圈體;
如此反覆,直到判斷條件為假時結束迴圈體,執行五while後的語句
i=1
while i<=5:
print(i)
i+=1
2.1.2死迴圈:永不結束的迴圈
while True:
print(1)
2.1.3結束while迴圈有兩種方式
方式一:把條件改為False, 必須要等到下一次迴圈判斷條件時才能結束迴圈
i = 1
tag = True
while tag:
if i == 5:
tag = False
print(i)
i += 1
方式二:break終止本層迴圈,會立即結束while迴圈,根本沒有下一次
i = 1
tag = True
while tag:
if i == 5:
break
print(i)
i += 1
2.1.4continue
continue則用於結束本次迴圈,直接進入下一次迴圈
i = 1
while i <= 5:
if i == 3:
i += 1
continue
print(i)
i += 1
強調:
1、不要在continue後加與continue同級的程式碼,加了就永遠執行不了了
2、迴圈體程式碼的最後一步不要寫continue
2.2 while+else
else的子程式碼何時執行:
while迴圈結束後並且是在正常情況下結束的,else的子程式碼塊才會執行
ps:只要不是被break幹掉的迴圈,都是正常結束的
正常結束的
i = 0
while i <= 5:
if i == 3:
i += 1
continue
print(i)
i += 1
else:
print("==============")
被break結束的
i = 0
while i <= 5:
if i == 3:
i += 1
break
print(i)
i += 1
else:
print("==============")
2.2. for迴圈語句
for迴圈可以做的事情while迴圈都可以實現,之所以用for迴圈是因為在迴圈取值(即遍歷值)時for迴圈比while迴圈的使用更為簡潔
for更擅長遍歷值,for迴圈的次數取決值的個數
for 變數名 in 可迭代物件: # 此時只需知道可迭代物件可以是字串\列表\字典,我們之後會專門講解可迭代物件
程式碼一
程式碼二
...
#例1 遍歷數列
for item in ['a','b','c']:
print(item)
# 執行結果
a
b
c
#例2
l1 = [[111, 222], [444, 555], [777, 888]]
for x,y in l1: #x,y =[111,222]
print(x,y)
# 執行結果
#例1 遍歷字典
dic = {'k1':111,'k2':222,'k3':333}
for k in dic:
print(k,dic[k])
# 執行結果
k1 111
k2 222
k3 333
2.2.1for 迴圈語句與range()函式
range() 函式時python的內建函式
python2.x range() 函式可建立一個整數列表,一般用在 for 迴圈中。
Python3 range() 返回的是一個可迭代物件(型別是物件),而不是列表型別, 所以列印的時候不會列印列表
for 迴圈語句經常與range()函式一起使用
range()函式的語法是:
range([start],stop,[step])
#start 計數從start開始,預設是0 range(5)等價range(0,5)
#stop 計數到 stop 結束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
#step: 步長,預設為1。例如:range(0, 5) 等價於 range(0, 5, 1)
for count in range(6): # range(6)會產生從0-5這6個數
print(count)
# 執行結果
0
1
2
3
4
5
# 讓某段程式碼重複執行3次-》for迴圈實現如下
for x in range(3):
print('hello1')
print('hello2')
# 執行結果
hello1
hello2
hello1
hello2
hello1
hello2
2.2.2for迴圈巢狀
for i in range(3):
for j in range(5):
print("*",end='')
print() # print()表示換行
# 執行結果
*****
*****
*****