4. 流程控制與迴圈

tags: Python

以下程式碼「有」先後順序

推薦影片教學頻道:

一、流程控制 =>判斷式

1. 判斷式種類

  1. if 如果. . .
  2. elif 不然如果. . .
  3. else 不然. . .

2. 判斷式用法

判斷式內要執行的 程式碼(code) 需要進行縮排,即,按鍵盤上的tab

if bool: #做某些事情. . . elif bool: #做某些事情. . . else: #做某些事情. . . if bool and bool: #如果兩個bool都是True 做某些事情. . . if bool or bool: #如果兩個bool有一個是True 做某些事情. . . if not bool: # not 會反轉bool 即 如果bool為True 則被轉為False #如果bool是False 做某些事情. . . if var1 is var2: #如果變數var1的id 等於 var2的id 做某些事情. . . #兩個不同的變數 可能資料相同 但是 id(相當於記憶體位置) 卻不同 # var1 == var2 可以檢查 兩變數的 資料 是否一樣 # var1 is var2 則是檢查 兩變數是否 完全 一致

3. 實際使用例子

#取得使用者輸入 並轉為int整數 a = int(input()) #input()可以讓使用者在Terminal進行輸入 輸入的資料會以字串被儲存 #如果a成功轉為整數的話就進行判斷 => 因為可能使用者輸入英文字母或中文 就會出錯 if type(a)==int: #type() 可以取得變數的資料型態 if a >= 9: print("大於或等於9") #如果 a 大於 等於 9 => 輸出 "大於或等於9" elif a < 5: print("小於5") #不然如果 a 小於 5 => 輸出 "小於5" else: print("介於5~8之間") #不然 => 輸出 "介於5~8" 之間 else: print("請輸入數字") #如果使用者輸入字元 提示使用者必須輸入數字

4. 資料型態的True與False

False True
False True
not True not False
0 0以外的任何數
None 除了左邊列出的以外
空字串 “” ‘’ 任何資料或變數
空列表 / 集合 都會被視為True

二、流程控制 =>迴圈

1-1. 迴圈種類 / 結構

while 迴圈

.

for 迴圈

.

1-2. 常用配套語法

語法 作用 適用於 例子
2. range() 迴圈次數 / 數字範圍 for 例2 3 4
1. not 轉變布林值 while 例1
3. in 布林值 檢查物件是否在列表中 while 例2 3 4
4. try 嘗試 while / for 例3
5. except 當出現錯誤 while / for 例3
6. finally 最後 while / for 例3
7. else 不然 / 最後 while / for 例2 3
8. contiue 繼續 while / for 例1 3
9. break 退出迴圈 while / for 例1 3

.

1-3. 實際使用例子

  1. 「當」 a < 10 的時候 a+1 如果 a 依然小於 10 繼續 直到 a < 10 為 False
#先定義初始 a 值 a = 0 #第一種寫法 while a < 10: a+=1 # += 運算子 更多運算子可以回上一篇查看 #第二種寫法 while(1): a+=1 if not a < 10: # 如果 a 不小於 10 break #強制退出迴圈 else: #不然 continue #強制進入下一圈迴圈 print("owo") #因為 continue 強制進入下一圈迴圈 這個print() 永遠不會被執行
  1. 「以」 變數 _ 儲存代表 列表c 裡的物件 然後印出 並在印出全部物件的最後印出 “end”
#先定義 列表c 變數_是用來暫時儲存物件的 不需要事先定義 通常暫時變數會使用 _ 作為變數名稱 c = ["a", 1, 7, 10, "gg", "88", "omg", True, False] for _ in c: print(_) else: print("end")
  1. 不斷「嘗試」印出列表 c 中的物件 並附帶印出在其列表中的位置 並在最後印出"end"
#先定義 列表c c = ["a", 1, 7, 10, "gg", "88", "omg", True, False] #第一種寫法 for _ in c: print(c, c.index(_)) #index詳細用法解釋可以回上一篇查看list語法 else: print("end") #第二種寫法 i = 0 #定義 i 變數為0 用來指定列表中的物件 while(1): try: #嘗試印出 c 的第 i 個物件 print(c[i], i) #輸出 c[i] 然後空格 再輸出 i => ,會等於一個空格 except: #當出現錯誤 => i 大於 列表c 的長度 break # 強制退出迴圈 finally: #不管上面嘗試成不成功 都會執行 即使強制結束迴圈 也會執行最後一次才退出 i+=1 #每次迴圈 i 都增加 1 continue #繼續下一圈迴圈 else: print("end")
  1. 讓使用者輸入兩個數字x y 以空格分隔 並計算 x 整數加到 y 的值
# input() 取得使用者輸入 # split() 以空格作為分割點 將字串 (在此為使用者輸入) 分割為列表 # 變數1 , 變數2 = 列表 => 列表長度要等於左邊變數的數量 # 變數1 會儲存 列表第一個物件 也就是列表0號位置的物件 # 變數2 會儲存 列表第二個物件 也就是列表1號位置的物件 # 將 分割後的 使用者輸入列表 內的物件 一一提取 並轉為int整數 放進[]裡變成列表 #第一種寫法 x, y = [int(_) for _ in input().split()] Sum = 0 # 把 x 到 y 的數字一一提取出來 存到變數 _ 中 (因為 range(a, b) 只會跑 a 到 b-1 所以要+1 for _ in range(x, y+1): Sum += _ # += 運算子詳細解釋可以回上一篇查看 print(Sum) # 印出結果 #進階寫法 x, y = [int(_) for _ in input().split()] #看上面解釋 # 將 x 到 y 的所有數字以 range(x,y) 生成並存到[]列表中 再使用sum函數加總列表中的所有數字 print(sum([int(_) for _ in range(x, y)]))

上一篇

下一篇