豬行天下之Python基礎——4.1 條件判斷與迴圈

coder-pig發表於2019-04-04

內容簡述:

  • 1、條件判斷
  • 2、迴圈

1、條件判斷

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

① 條件判斷的三個關鍵字

Python 使用ifelseelif三個關鍵字的搭配來實現判斷語句,使用程式碼示例如下:

# 單分支(只有一個if),如果程式碼塊只有一條語句,可以和if語句寫到一行
name = 'CoderPig'
if name == 'CoderPig'print("你是CoderPig")

# 雙分支(if-else)
sex = "男"
if sex == '男':
    print("你是一個男性")
else:
    print("你是一個女性")

# 多分支(if-elif-else)
score = 78
if score == 100:
    print("滿分!")
elif 90 <= score < 100:
    print("優秀!")
elif 80 <= score < 90:
    print("良好!")
elif 70 <= score < 80:
    print("中等!")
elif 60 < score < 70:
    print("差!")
else:
    print("不及格!")
複製程式碼

執行結果如下

你是CoderPig
你是一個男性
中等!
複製程式碼

② 條件表示式

一個 簡化版的if-else,一般在賦值時會用得比較多,比如把兩個值中較大的那個賦值給一個變數。程式碼示例如下:

a,b = 1, 2
c = a if a > b else b
print('c = %d' % c)
複製程式碼

執行結果如下

c = 2
複製程式碼

2、迴圈


① for迴圈

當我們需要重複執行某行或某個程式碼塊的時候可以使用迴圈。舉個例子:在沒有學習迴圈結構前,要你計算1加到100,你可能會寫出這樣的程式碼:result = 1 + 2 + 3 + 4 +… + 100 如果要你加到1000,或者10000呢?會非常繁瑣吧,如果有了迴圈,你只需下面這樣一段程式碼:

result = 0
for i in range(1,101):
    result += i
print(result)
複製程式碼

執行結果如下

====== 輸出1-100的求和結果 ====== 
5050
複製程式碼

如果想加到1000,只需把101改成1001,加到10000,改成10001即可。非常簡單,上面就是Python提供的兩種迴圈中的「for迴圈」,還有另外一種「while迴圈」。


② while迴圈

把for迴圈的程式碼改成while迴圈,程式碼如下:

result = 0
pos = 1
while pos <= 100:
    result += pos
    pos += 1
else:
    print("====== 輸出1-100的求和結果 ====== \n%d" % result)
複製程式碼

執行結果如下

====== 輸出1-100的求和結果 ====== 
5050
複製程式碼

如果while後的判斷條件返回值為True,執行迴圈體裡的程式碼,否則退出迴圈。可以搭配else一起使用,當迴圈執行完後執行某段代。,可選,但不是必須的。for迴圈也可以使用else。


③ break,continue

Python為我們提供了兩個迴圈控制的關鍵字「break」和「continue」。
break終止整個迴圈,使用程式碼示例如下:

print("輸出1-100之間所有的奇數:")
for i in range(1, 101):
    if i % 2 == 0:
        if i % 20 == 0: print()
        continue
    else:
        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 = 1
while pos < 21:
    score_list.append(random.randint(0100))
    pos += 1
print("隨機生成的成績列表:\n%s" % score_list)
for score in score_list:
    if score < 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 = 1
while i <= 9:
    j = 1
    while j <= i:
        print('%d * %d = %d' % (i, j, i * j), end='\t')
        j += 1
    print()
    i += 1
複製程式碼

執行結果如下

輸出九九乘法表:
1 * 1 = 1 
* 1 = 2   2 * 2 = 4 
* 1 = 3   3 * 2 = 6   3 * 3 = 9 
* 1 = 4   4 * 2 = 8   4 * 3 = 12  4 * 4 = 16 
* 1 = 5   5 * 2 = 10  5 * 3 = 15  5 * 4 = 20  5 * 5 = 25 
* 1 = 6   6 * 2 = 12  6 * 3 = 18  6 * 4 = 24  6 * 5 = 30  6 * 6 = 36 
* 1 = 7   7 * 2 = 14  7 * 3 = 21  7 * 4 = 28  7 * 5 = 35  7 * 6 = 42  7 * 7 = 49 
* 1 = 8   8 * 2 = 16  8 * 3 = 24  8 * 4 = 32  8 * 5 = 40  8 * 6 = 48  8 * 7 = 56  8 * 8 = 64 
* 1 = 9   9 * 2 = 18  9 * 3 = 27  9 * 4 = 36  9 * 5 = 45  9 * 6 = 54  9 * 7 = 63  9 * 8 = 72  9 * 9 = 81 
複製程式碼

⑤ 死迴圈

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


如果本文對你有所幫助,歡迎
留言,點贊,轉發
素質三連,謝謝?~


相關文章