1. 程式人生 > 其它 >條件判斷_Python基礎 | 0xd 條件判斷與迴圈

條件判斷_Python基礎 | 0xd 條件判斷與迴圈

技術標籤:條件判斷

54396cc2c14554f361e6c51a395eee4a.png

條件判斷

所謂的條件判斷就是 根據一條或多條語句的執行結果(True/False) 來決定執行那一塊的程式碼。

// 條件判斷的三個關鍵字//

Python 使用 ifelseelif 三個關鍵字的搭配來實現判斷語句,使用示例如下:
# 單分支(只有一個if),如果程式碼塊只有一條語句,可以和if語句寫到一行
name = 'CoderPig'ifname == 'CoderPig': print("你是CoderPig")# 雙分支(if-else)
sex = "男"ifsex == '男':
print("你是一個男性")else:
print("你是一個女性")# 多分支(if-elif-else)
score = 78ifscore == 100:
print("滿分!")elif90<= score < 100:
print("優秀!")elif80<= score < 90:
print("良好!")elif70<= score < 80:
print("中等!")elif60< score < 70:
print("差!")else:
print("不及格!")# 執行結果如下
你是CoderPig
你是一個男性
中等!

// 條件表示式 //

一個 簡化版的 if-else ,一般在賦值時會用的比較多,比如講兩個值中較大的那個賦值給一個變數。示例如下:
a,b = 1, 2
c = a ifa > b elseb
print('c = %d'% c)# 輸出結果如下
c = 2
54396cc2c14554f361e6c51a395eee4a.png

迴圈

// for迴圈 //

當我們需要重複執行某行或某個程式碼塊的時候可以使用迴圈。舉個例子:在沒有學習迴圈結構前,要你計算1加到100,你可能會寫出這樣的程式碼:result = 1 + 2 + 3 + 4 +... + 100 如果要你加到1000,或者10000呢?會非常繁瑣吧,如果有了迴圈,你只需下面這樣一段程式碼:
result = 0fori inrange(1,101):
result += i
print(result)# 執行結果如下:
====== 輸出1-100的求和結果 ======5050
如果想加到1000,只需把101改成1001,加到10000,改成10001即可。

// while迴圈//

Python中提供的另外一種迴圈,把上面for迴圈的例項改為while迴圈:
result = 0
pos = 1whilepos <= 100:
result += pos
pos += 1else:
print("====== 輸出1-100的求和結果 ====== \n%d"% result)# 執行結果如下:
====== 輸出1-100的求和結果 ======5050
如果while後的判斷條件返回值為True,執行迴圈體中的程式碼,否則退出迴圈。可以搭配 else 一起使用,當迴圈執行完後執行某段程式碼,可選但非必須,for迴圈也可以用else。

// break、continue//

python為我們提供了兩個迴圈控制關鍵字 break continue break 用於 終止整個迴圈 ,示例如下:
print("輸出1-100之間所有的奇數:")fori inrange(1, 101):ifi % 2 == 0:ifi % 20 == 0: print()continueelse:print(i, end='\t')# 執行結果如下:
輸出1-100之間所有的奇數:
1 3 5 7 9 11 13 15 17 19
21 23 25 27 29 31 33 35 37 39
41 43 45 47 49 51 53 55 57 59
61 63 65 67 69 71 73 75 77 79
81 83 85 87 89 91 93 95 97 99
continue跳過本次迴圈,執行下一次迴圈 ,使用程式碼示例如下:
score_list = []
pos = 1whilepos < 21:
score_list.append(random.randint(0, 100))
pos += 1
print("隨機生成的成績列表:\n%s"% score_list)forscore inscore_list:ifscore < 60:
print("第一個不及格的成績是:%s"% score)break# 執行結果如下:
隨機生成的成績列表:
[83, 55, 70, 20, 98, 26, 7, 55, 89, 27, 19, 31, 43, 89, 57, 16, 86, 77, 68, 50]
第一個不及格的成績是:55

// 迴圈巢狀//

所謂的迴圈巢狀就是迴圈裡面有另一個迴圈,舉個最經典的例子,列印9*9乘法表,程式碼示例如下:
print("輸出九九乘法表:")
i = 1whilei <= 9:
j = 1whilej <= i:
print('%d * %d = %d'% (i, j, i * j), end='\t')
j += 1
print()
i += 1# 執行結果如下:
輸出九九乘法表:1* 1= 12* 1= 22* 2= 43* 1= 33* 2= 63* 3= 94* 1= 44* 2= 84* 3= 124* 4= 165* 1= 55* 2= 105* 3= 155* 4= 205* 5= 256* 1= 66* 2= 126* 3= 186* 4= 246* 5= 306* 6= 367* 1= 77* 2= 147* 3= 217* 4= 287* 5= 357* 6= 427* 7= 498* 1= 88* 2= 168* 3= 248* 4= 328* 5= 408* 6= 488* 7= 568* 8= 649* 1= 99* 2= 189* 3= 279* 4= 369* 5= 459* 6= 549* 7= 639* 8= 729* 9= 81

// 死迴圈 //

所謂的死迴圈就是因為程式的邏輯問題,導致迴圈程式碼塊一直執行, 迴圈的條件永遠不會為False , 導致無法跳出迴圈,所以編寫程式碼的時候需要保證程式的的正確性。 當然,死迴圈也不是一無是處的, 在執行一些 輪詢操作 時經常用到,等滿足某個條件再break退出這個迴圈。