Python3 for迴圈語句


Python中的 for 語句可用來疊代任何序列中的專案,如列表或字串。

語法

for iterating_var in sequence:
   statements(s) 

如果一個序列中包含一個表示式列表時,它需要首先計算。然後,序列中的第一項被分配給所述疊代變數iterating_var,接下來, 語句塊被執行。 列表中的每一項都被分配到iterating_var, 並執行語句( statement)塊,直到整個序列完成。

流程圖


range()函式

內建函式range() 是疊代數位序列的函式。它產生算術數列疊代器。
>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4] 
range() 生成一個疊代從0開始到 n-1 的整數。要獲得序列的列表物件,它可以強制轉換為list()。現在,這個列表可以使用 for 語句遍歷
>>> for var in list(range(5)):
	print (var)
這將產生以下輸出
0
1
2
3
4

範例

#!/usr/bin/python3

for letter in 'Python':     # traversal of a string sequence
   print ('Current Letter :', letter)
print()
fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # traversal of List sequence
   print ('Current fruit :', fruit)

print ("Good bye!")
當執行上面的程式碼,它產生以下結果 -
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n

Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

通過序列索引進行遍歷

另一種方式是通過索引偏移疊代序列的每個專案。下面是一個簡單的例子 -

#!/usr/bin/python3

fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print ('Current fruit :', fruits[index])

print ("Good bye!")
當執行上面的程式碼,它產生以下結果 -
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye! 

在這裡,我們使用了 len() 的內建函式,它用來計算元組的元素總數,以及 range() 內建函式用來遍歷序列順序。

for迴圈使用else語句

Python支援在迴圈語句相關聯else語句
  • 如果else語句和for迴圈語句一起使用,else塊只在 for 迴圈正常終止時執行(而不是遇到break語句)。

  • 如果else語句用在 while迴圈中,當條件變為 False 時,則執行else語句。

下面的例子說明了一個else語句和for語句相結合使用,在給定的列表數中搜尋偶數。
#!/usr/bin/python3

numbers=[11,33,55,39,55,75,37,21,23,41,13]

for num in numbers:
    if num%2==0:
        print ('the list contains an even number')
        break
else:
    print ('the list doesnot contain even number')
當執行上面的程式碼,它產生以下結果 -
the list doesnot contain even number