帶你學python基礎:條件控制if與迴圈語句while、for 以及range函式
一、什麼是條件控制
條件控制用生活中的一個例子來說就是:當你去買車時,會有好多品牌,這個時候我們就需要做出選擇,到底需要買哪個品牌的車,而在程式設計中,條件控制就是為了幫你做選擇的。
用專業點的話來說,條件控制語句,也可以稱之為 判斷語句 ,通過一條或多條的執行結果來決定接下來要執行的程式碼塊。

上圖就是一個條件控制。
二、if條件控制
簡單的說if條件控制有多種表達的形式。
最簡單的
if語句只有一個判斷一個操作。
語法:
if 條件: 條件成立,執行程式碼塊
** 舉例 **
age = 18 if age == 18: print('我是18')

if-else
語法:
if 條件: 滿足條件執行的程式碼塊1 else: 沒有滿足if條件執行的程式碼塊2
舉例
age = 18 if age == 17: print('我是18') else: print('我不是18')
if-elif-else
一個if只能有一個else,但是可以擁有多個elif。在 C 、C++、Java 中都有switch-case語句,但是Python中沒有 switch-case,可以使用 if-elif-else 來代替 switch-case,在 C 、C++、Java 中的 switch-case 也是可以被 if-elif-else 這種型別代替的。
語法:
if 條件: 滿足if條件執行的程式碼塊1 elif 條件1: 滿足條件1執行的程式碼塊2 elif 條件2: 滿足條件2執行的程式碼塊3 else: 不滿足以上條件執行的程式碼塊4

舉例
age = 18 if age == 17: print('我是17') elif age == 18: print('我是18') elif age == 19: print('我是19') elif age == 20: print('我是20') else: print('我不知道!')

if巢狀
If 巢狀就是在 if-elif-else 結構中再巢狀另外一個 if-elif-else 結構。
語法:
if 條件: 滿足if條件執行的程式碼塊 elif 條件1: if 條件1-1: 滿足條件1-1執行的程式碼塊 elif 條件1-2: 滿足條件1-2執行的程式碼塊 else: 都不滿足執行的程式碼塊 elif 條件2: 滿足條件2執行的程式碼塊 elif 條件3: 滿足條件1執行的程式碼塊
舉例
age = 19 if age < 17: print('我小於17') elif age > 18 & age < 20: if age == 19: print('我是19') elif age == 20: print('我是20') else: print('我不知道!')

三、迴圈控制while
迴圈控制是什麼呢?
迴圈控制就是我們每天都要迴圈不斷的去搬磚!一直做同一件事情。
while
是一個條件迴圈語句,與 if 一樣,他也有 條件表示式
。如果條件為 真
,while中的程式碼就會 一直迴圈執行
,直到迴圈條件不再為真才停止。
語法:
while 條件: 程式碼塊
舉例
計算 1 * 2 * 3 ··· *5的大小
# 計算1 * 2 * 3 ··· *5的大小 i = 1 sum = 1 while i <= 5: sum *= i i = i + 1 print(sum) print(sum)

while迴圈巢狀
while中也可以巢狀while迴圈。
語法:
while 條件1: 滿足條件1執行程式碼塊1 while 條件2: 滿足條件1又滿足條件2執行程式碼塊2
舉例
輸出一個用三角形構成的直角三角形
# 輸出一個用三角形構成的直角三角形 i = 1 j = 1 while i <= 5: while j <= 5: print('△' * j) j = j + 1 i = i + 1

while迴圈使用else語句
while 條件: 滿足條件執行程式碼塊 else: 不滿足條件執行程式碼塊
舉例
i = 5 while i > 5: print('yes') else: print('No')
break 、pass 和 continue
在 while 和 for 迴圈的使用中,我們需要注意,經常會使用到 break 和 continue 這兩個關鍵字。
break
在迴圈語句中使用break的作用是,在迴圈體內遇到 break 則會跳出迴圈,終止迴圈,並且不論迴圈的條件是否為真,都不再繼續迴圈下去。
i = 1 while i <= 5: print(i) if i == 3: break i = i + 1

continue
退出當前迴圈,再繼續執行下一次迴圈。
i = 0 while i <= 5: i = i + 1 if i == 3: continue print(i)

如圖,當執行到 3 的時候,是不會執行的,但是後面的還是會接著執行。
pass
這個關鍵字在 python 的這門語言中是獨有的。它的作用主要是:
- pass語句的使用表示不希望任何程式碼或者命令的執行;
- pass語句是一個空操作,在執行的時候不會產生任何反應;
- pass語句常出現在if、while、for等各種判斷或者迴圈語句中;
四、for 迴圈控制
for 是 Python 中另外一個迴圈語句,其作用和 while 是類似的,提供了Python中最強大的迴圈結構,它可以迴圈遍歷任何序列專案,如一個列表或者一個字串。
語法
for <variable> in <sequence>: <statements> else: <statements>
舉例
# 建立一個元祖 tuple1 = ('歐陽思海', 18, 'wuhan', 1.75) for item in tuple1: print(item)

for 迴圈的其他用法和 while 類似,可以參照 while 舉一反三。
range函式用法
由於在迴圈中經常會用到 range 這個函式,所以,在這裡就先介紹一下。
語法
range(start, stop[, step])
- start: 計數從 start 開始。預設是從 0 開始。例如range(4)等價於range(0,4);
- end: 計數到 end 結束,但不包括 end。例如:range(0, 4) 是[0, 1, 2, 3, 4]沒有4
- step:步長,預設為1。例如:range(0, 4) 等價於 range(0, 4, 1)
舉例
list(range(10))# 從 0 開始到 10 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] list(range(1, 15))# 從 1 開始到 11 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10···15] list(range(0, 60, 5))# 步長為 5 [0, 5, 10, 15, 20, 25···60] list(range(0, 10, 3))# 步長為 3 [0, 3, 6, 9] list(range(-10, 0, 2))# 負數 [-10, -8, -6, -4, -2] list(range(50, 0)) # 在迴圈中使用 for i in range(10): print(i)
