for 循環(huán)
本系列前面 “探索 Python,第 5 部分:用 Python 編程” 一文討論了 if 語句和 while 循環(huán),討論了復(fù)合語句以及適當(dāng)縮進(jìn) Python 語句來指示相關(guān) Python 代碼塊。該文的結(jié)尾介紹了 Python for 循環(huán)。但就其使用和功能來說,for 循環(huán)更值得關(guān)注,所以本文單獨講述該循環(huán)。
for 循環(huán)有一個簡單的語法,使您可以從容器對象中提取單個項目并對其進(jìn)行某些操作。簡單地說,使用 for 循環(huán),可以迭代中對象集合的項目。對象集合可以是任何 Python 容器類型,包括前面文章中討論的 tuple、string 和 list 類型。但是容器 metaphor 的功能比這三種類型更強(qiáng)大。metaphor 包括其他序列類型,如 dictionary 和 set,將來的文章中將對它們進(jìn)行討論。
但是請稍等!還有更多信息:for 循環(huán)可以用于迭代支持迭代 metaphor 的任何對象,這使 for 循環(huán)非常有用。
清單 1 中顯示了 for 循環(huán)的基本語法,還演示了如何在 for 循環(huán)中使用 continue 和 break 語句。
清單 1. for 循環(huán)的偽代碼
for item in container: if conditionA: # Skip this item continue elif conditionB: # Done with loop break # action to repeat for each item in the container else: # action to take once we have finished the loop.
本系列中的第二篇文章 “探索 Python,第 2 部分:探索 Python 類型的層次結(jié)構(gòu)” 介紹了 Python tuple。如文中所述,tuple 類型是不可變的異構(gòu)容器。這主要是說 tuple 可以存放不同類型的對象,但是它一旦創(chuàng)建,就無法更改。清單 2 演示了如何使用 for 循環(huán)迭代 tuple 的元素。
清單 2. for 循環(huán)和 tuple
>>> t = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) >>> count = 0>>> for num in t:... count += num... else:... print count... 45>>> count = 0>>> for num in t:... if num % 2:... continue... count += num... else:... print count... 20
本例首先創(chuàng)建了名為 t 的 tuple,存放整數(shù) 0 至 9(包含 9)。第一個 for 循環(huán)迭代此 tuple,在 count 變量中累計 tuple 中數(shù)值的和。一旦代碼已經(jīng)迭代了 tuple 中的所有元素,它將進(jìn)入 for 循環(huán)的 else 子句,打印 count 變量的值。
清單 2 中顯示的第二個 for 循環(huán)也迭代 tuple 中的所有元素。但是,它僅累計容器中能夠被 2 整除的那些項的值(請記住如果表達(dá)式為非零,if 語句將確定為真,num 不能被 2 整除時使用 % 運算符會返回非零值)。此限制通過使用適當(dāng)?shù)?if 語句和 continue 語句來完成。如前面的文章中所述,continue 語句使包含它的循環(huán)開始下一次迭代。實現(xiàn)相同結(jié)果的另一種方法是測試 tuple 中的當(dāng)前項是否是偶數(shù)(使用 if not num % 2:),如果為真,那么將當(dāng)前項添加到運行總和中。一旦代碼完成 tuple 中的迭代,將調(diào)用 else 子句,打印總和。
新聞熱點
疑難解答
圖片精選