8.1 for 迴圈
能夠根據條件執行一組命令是很棒的。那如果我想執行某個動作 100 次呢?怎麼做?
Python 語言中有迴圈。對於這個任務,非常適合使用迴圈 for。for 的一般形式如下:
for 變數 in 值列表:
命令1
命令2
命令N
其中,值列表 是某個值的集合:列表、字串、字典(稍後會提到)。
變數 依次採用來自 值列表 的值,對每個值執行一個命令塊。
範例:
| 範例 | 說明 |
|---|---|
|
1. 將 fruit 變數賦值為 "apple",然後執行命令 print(fruit )。2. 將 fruit 變數賦值為 "banana",然後執行命令 print(fruit )。3. 將 fruit 變數賦值為 "cherry",然後執行命令 print(fruit )。 |
這就是迴圈的運作原理:
如果在 in 之後的列表中有 10 個值,那麼命令塊將執行 10 次。
對 值列表 中的每個值會發生兩件事:
- 迴圈變數(在
for之後指定的變數)被賦予列表中的下一個值。 - 然後執行命令塊。
再看個例子:
| 範例 | 說明 |
|---|---|
|
迴圈將在螢幕上顯示這些數字: 1 2 3 4 5 6 7 8 9 10 |
8.2 設定範圍—range
在最後的範例中,你可以看到顯示 10 個數字非常容易。但是如果我們想執行 100 次迴圈呢?或是 1000 次?
當然是有解決方案的。在 Python 中,有一個專門用來生成數字序列的函數 range(),搭配 迴圈 for,使它成為管理重複任務的強大工具。
函數 range() 可以根據傳遞給它的參數數量以不同的方式使用。
使用基本 range():
單一參數: range(n) 会产生序列從 0 到 n-1。當需要執行某操作多次時,這非常有用。
for i in range(5):
print(i) # 將輸出 0 到 4 的數字
兩個參數: range(start, stop) 會生成從 start 到 stop-1 的序列。這在從某一特定數字開始迭代時非常有用。
for i in range(1, 6):
print(i) # 將輸出 1 到 5 的數字
三個參數: range(start, stop, step) 加入第三個參數 step,它決定序列中數字之間的步長。
for i in range(0, 10, 2):
print(i) # 將輸出 0 到 8 的偶數
反向迴圈: range() 可以生成逆序數字,允許執行反向迭代。
for i in range(10, 0, -1):
print(i) # 將輸出 10 到 1 的數字
函數 range() 結合迴圈 for 提供了在 Python 中迭代控制的靈活工具。理解它的功能可幫助開發更高效且易於理解的迴圈,這是任何程式的組成要素。
8.3 列表迴圈
如果你想對不同的值執行一組操作,range() 函數可能不合適,你仍然可以使用方括號將這些值組合為列表。這個操作的通用形式如下:
for 變數 in [val1, val2, …, valN]:
命令1
命令2
命令N
你只要用逗號分隔列出值,迴圈就會對每個值執行,變數會依次採用每個值。範例:
| 範例 | 說明 |
|---|---|
|
迴圈將在螢幕上顯示字串: apple banana cherry |
你可以直接在迴圈中於單詞 in 之後指定數字:
| 範例 | 說明 |
|---|---|
|
迴圈將在螢幕上顯示數字: 0.99 2.75 0.25 |
列表中可以包括任何類型的對象:
| 範例 | 說明 |
|---|---|
|
迴圈將在螢幕上顯示字串: 0.99 apple -1 True |
GO TO FULL VERSION