1. 程式人生 > 其它 >07.判斷和迴圈語句

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()表示換行
    
# 執行結果  
*****
*****
*****