Python中的for語句能夠周遊任何序列的項目,例如清單或字元串。
文法
for iterating_var in sequence:
statements(s)
如果序列包含表達式清單,則首先進行評估求值。 然後,序列中的第一個項目被配置設定給疊代變量iterating_var。 接下來,執行語句塊(statement(s))。清單中的每個項目都配置設定給iterating_var,并且執行語句塊,直到整個序列耗盡完成。
流程圖
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauEDN4cjMfFDM2ADMxcDM38CX2ADNx8CX2AzNxAjMvw1cldWYtl2LcNHZh9GbwV3Lc12bj5SahJWaplnL3d3dvw1LcpDc0RHaiojIsJye.jpg)
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)
上面示例代碼将産生以下輸出 -
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()函數提供了疊代的實際順序。
循環中使用else語句
Python支援在循環語句中關聯else語句。
如果else語句與for循環一起使用,則隻有在for循環正常終止(而不是遇到break語句)時才執行else塊。
如果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 does not contain even number
¥ 我要打賞
糾錯/補充
收藏
加QQ群啦,易百教程官方技術學習群
注意:建議每個人選自己的技術方向加群,同一個QQ最多限加 3 個群。