Python流程式控制制是Python編程中非常重要的一部分,它用於控製程序的執行流程。Python提供了多種流程式控制制語句,包括if語句、while迴圈、for迴圈、break和continue語句等。這種流程式控制制在各個語言中都是大同小異的,如果你已經學過其他的語言,那麼這章節就可以直接跳過。 if語句 ...
Python流程式控制制是Python編程中非常重要的一部分,它用於控製程序的執行流程。Python提供了多種流程式控制制語句,包括if語句、while迴圈、for迴圈、break和continue語句等。這種流程式控制制在各個語言中都是大同小異的,如果你已經學過其他的語言,那麼這章節就可以直接跳過。
if語句
if語句用於根據條件執行不同的代碼塊。condition
是一個布爾表達式,後面一定要加冒號,這是python語法規定。if語句後面的條件表達式是可以加括弧的,但並不是必須的。使用括弧可以使代碼更加清晰易讀,特別是在複雜的條件表達式中。然而,括弧並不是語法要求,可以根據個人編碼風格和團隊約定進行選擇。
if condition:
# code to be executed if condition is True
else:
# code to be executed if condition is False
下麵的代碼演示瞭如何使用if語句來判斷一個數是否為正數:
num = int(input("請輸入一個整數:"))
if num > 0:
print("輸入的數是正數")
else:
print("輸入的數不是正數")
else if語句
else if語句用於在if語句之後添加多個條件分支,使用方式和if語句是一樣的。另外需要註意的是最後的else語句是直接在else後面加冒號的,應該後面已經沒有判斷條件了。
if condition1:
# code to be executed if condition1 is True
elif condition2:
# code to be executed if condition1 is False and condition2 is True
else:
# code to be executed if condition1 and condition2 are False
condition1
和condition2
是兩個布爾表達式,如果它們的值為True,則執行相應的代碼塊;否則執行else語句中的代碼塊。下麵的代碼演示瞭如何使用else if語句來判斷一個數是否為偶數:
num = int(input("請輸入大於0的數:"))
if num > 0:
print("輸入的數大於0")
else if num < 0:
print("輸入的數小於0")
else:
print("輸入的數等於0")
for迴圈
for迴圈用於遍歷一個序列(如列表、元組或字元串)中的元素。它的語法如下:
for element in sequence:
# code to be executed for each element in sequence
其中,element
是當前遍歷到的序列元素的值,sequence
是一個序列(如列表、元組或字元串)。迴圈體內的代碼塊可以包含任意Python語句。在每次迴圈迭代中,element
的值都會被更新為下一個序列元素的值。
遍歷類型
for迴圈是可以用於遍歷各種序列,主要有列表、元組、字元串、字典等。
- 遍歷列表:
fruits = ["apple", "banana", "orange"]
for fruit in fruits:
print(fruit)
- 遍歷元組:
numbers = (1, 2, 3, 4, 5)
for num in numbers:
print(num)
- 遍歷字元串:
word = "Python"
for char in word:
print(char)
- 遍歷字典的鍵:
ages = {"John": 25, "Alice": 28, "Bob": 30}
for name in ages:
print(name)
range關鍵字
以上是for迴圈遍歷列表元組相關操作,有時候我們又需要遍歷序列,這時候就需要range
關鍵字了。在 Python中,range()
是一個內置函數,用於生成一個整數序列。它可以通過指定起始值、結束值和步長來生成相應的序列。
range()
函數的語法如下:
range(stop)
range(start, stop)
range(start, stop, step)
參數說明:
start
(可選):起始值,預設為 0。stop
:結束值,生成的序列不包括該值。step
(可選):步長,預設為 1。
range()
函數返回的是一個可迭代對象,通常與 for 迴圈結合使用。當只傳遞一個參數時,預設是作為結束值;當傳遞兩個參數時,第一個參數作為起始值,第二個參數作為結束值;當傳遞三個參數時,第一個參數作為起始值,第二個參數作為結束值,第三個參數作為步長。
以下是一些使用 range()
函數的示例:
# 生成 0 至 4 的整數序列
numbers1 = range(5)
print(list(numbers1)) # [0, 1, 2, 3, 4]
# 生成 1 至 10 的整數序列
numbers2 = range(1, 11)
print(list(numbers2)) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 生成 0 至 10 的偶數序列
numbers3 = range(0, 11, 2)
print(list(numbers3)) # [0, 2, 4, 6, 8, 10]
for element in range(start, stop, step):
# 在此處執行迴圈體語句
需要註意的是,range()
函數生成的是惰性序列(lazy sequence),它並不會一次性地將所有的值都存儲在記憶體中,而是在需要的時候才生成新的值。如果想要立即獲取包含所有整數的列表,可以使用 list(range(start, stop, step))
的方式進行轉換。
# 遍歷 1 至 10 的整數,步長為 1
for num in range(1, 11, 1):
print(num)
# 遍歷 0 至 10 的偶數,步長為 2
for num in range(0, 11, 2):
print(num)
# 遍歷 10 至 1 的整數,步長為 -1
for num in range(10, 0, -1):
print(num)
while迴圈
while迴圈用於重覆執行一段代碼,直到滿足某個條件為止。它的語法如下:
while condition:
# code to be executed repeatedly until condition is False
condition
是一個布爾表達式,如果它的值為True,則執行迴圈體內的代碼塊;否則跳出迴圈。迴圈體內的代碼塊可以包含任意Python語句。
下麵的代碼演示瞭如何使用while迴圈來計算1到100的和:
total = 0
i = 1
while i <= 100:
total += i
i += 1
print("1到100的和為:", total)
註意,在while迴圈中,一定要確保在迴圈體中更新迴圈條件的值,以避免無限迴圈的情況發生。如果條件永遠為真,會導致代碼陷入無限迴圈的狀態,程式無法繼續向下執行。
為了避免無限迴圈,可以在迴圈體內使用適當的條件控制語句(如break)來跳出迴圈,或者在外部設定一個計數器,並確保在合適的時機更新計數器的值。
break語句
break
是一種控制流語句,在迴圈中使用它可以立即終止迴圈並跳出迴圈體,進而執行迴圈外的下一條語句。當 break
語句被執行時,程式將會跳出迴圈,繼續執行迴圈後面的代碼。它可以用於 while
迴圈、for
迴圈等迴圈結構。
fruits = ["apple", "banana", "cherry", "date"]
for fruit in fruits:
if fruit == "cherry":
break
print(fruit)
print("Loop ends")
輸出結果為:
apple
banana
Loop ends
在上面的示例中,當迴圈遍歷到 "cherry"
時,滿足條件 fruit == "cherry"
,break
被執行,立即終止了迴圈。因此,後續的 "date"
不會被輸出。
使用 break
語句可以在滿足特定條件時,提前退出迴圈,從而減少不必要的迭代。在某些情況下,特定條件的出現可能會導致迴圈無需執行其餘部分,這時可以利用 break
來提前終止迴圈,節省計算資源。
continue語句
在Python中,continue
語句用於跳過當前迴圈中的剩餘代碼,並繼續執行下一次迴圈。當continue
語句被執行時,程式將立即跳轉到迴圈的開頭,而不執行continue
語句之後的代碼。它通常用於條件判斷內部,用來控制迴圈的執行流程。
for i in range(1, 11):
if i % 2 == 1:
continue
print(i)
上述代碼將輸出偶數的數字,而跳過了奇數。輸出結果如下:
2
4
6
8
10
在上述示例中,迴圈從1到10,當遇到奇數時,continue
語句將會跳過print(i)
的執行,直接進入下一次迴圈,從而實現了只輸出偶數的效果。
需要註意的是,continue
語句只會跳過當前迴圈內部的剩餘代碼,不會終止整個迴圈。如果要徹底終止迴圈,可以使用break
語句。