Python初級教程(11): for循環(huán)語句

在本文中,您將學(xué)習(xí)使用for循環(huán)的不同變體對元素序列進(jìn)行迭代

1. for循環(huán)

Python中的for循環(huán)用于迭代序列(list,tuple蕉汪,string)或其他可迭代對象泵督。在序列上進(jìn)行迭代稱為遍歷连舍。

for循環(huán)的語法:

for val in sequence:
    Body of for

這里,val是個變量泡仗,它的值是迭代地從序列中獲取一個項目(item)值。

循環(huán)一直繼續(xù)材泄,直到我們到達(dá)序列中的最后一項沮焕。同樣地,Python使用縮進(jìn)將for循環(huán)的主體與其余代碼分開拉宗。

其流程圖為:

來看個例子:

# Program to calculate the sum of all numbers stored in a list

# List of numbers
numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]

# variable to store the sum
sum = 0

# iterate over the list
for val in numbers:
    sum = sum + val

# Output: The sum is 48
print("The sum is", sum)

輸出為:

The sum is 48

2. range() 函數(shù)

我們可以使用range()函數(shù)生成一系列數(shù)字峦树。range(10)將生成從09的數(shù)字(10個數(shù)字)。

我們還可以自定義開始(stop)數(shù)字旦事、終止(stop)數(shù)字和步長(step size):range(start, stop, step size)魁巩。如果未提供步長,步長默認(rèn)為1姐浮。

這個函數(shù)不會將所有的值都存儲在內(nèi)存中谷遂,這樣效率會很低。它會記住開始卖鲤、終止以及步長肾扰,并在運行中生成下一個數(shù)字。

要強(qiáng)制該函數(shù)輸出所有項目蛋逾,我們可以使用list()函數(shù)集晚。

下面的例子將闡明這一點。

>>> print(range(10))
range(0, 10)
>>> print(list(range(10)))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(list(range(2, 8)))
[2, 3, 4, 5, 6, 7]
>>> print(list(range(2, 20, 3)))
[2, 5, 8, 11, 14, 17]   

我們可以在for循環(huán)中使用range()函數(shù)來遍歷一系列數(shù)字区匣。它可以與len()函數(shù)結(jié)合使用偷拔,通過索引遍歷序列。

來個看例子:

# Program to iterate through a list using indexing

genre = ['pop', 'rock', 'jazz']

# iterate over the list using index
for i in range(len(genre)):
    print("I like", genre[i])

輸出為:

I like pop
I like rock
I like jazz

3. 帶else的for循環(huán)

for循環(huán)也可以有可選的else塊亏钩。如果for循環(huán)遍歷完序列中所有項目莲绰,則執(zhí)行else部分。

break語句可用于停止for循環(huán)姑丑。在這種情況下蛤签,else部分將被忽略。

因此栅哀,如果沒有break語句顷啼,for循環(huán)的else部分將運行。

先看個沒有break語句的例子:

digits = [0, 1, 5]

for i in digits:
    print(i)
else:
    print("No items left.")

輸出為:

0
1
5
No items left.

這里昌屉,for循環(huán)打印列表中的項目,直到循環(huán)結(jié)束茵瀑。當(dāng)for循環(huán)結(jié)束時间驮,它執(zhí)行else中的代碼塊并打印No items left.

試下有break語句的例子:

digits = [0, 1, 5]

for i in digits:
    if i == 5:
        break
    print(i)
else:
    print("No items left.")

輸出為:

0
1

這里马昨,當(dāng)i等于5(digits的第3個元素)時竞帽,break語句終止了for循環(huán)扛施。因為for循環(huán)沒有遍歷完序列中所有項目,則不執(zhí)行else部分屹篓。

今天的內(nèi)容就講到這疙渣。


感謝您的閱讀!想了解更多有關(guān)R語言技巧堆巧,請關(guān)注我的微信公眾號“R語言和Python學(xué)堂”妄荔,我將定期更新相關(guān)文章。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谍肤,一起剝皮案震驚了整個濱河市啦租,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌荒揣,老刑警劉巖篷角,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異系任,居然都是意外死亡恳蹲,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門俩滥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘉蕾,“玉大人,你說我怎么就攤上這事举农【U耄” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵颁糟,是天一觀的道長航背。 經(jīng)常有香客問我,道長棱貌,這世上最難降的妖魔是什么玖媚? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮婚脱,結(jié)果婚禮上今魔,老公的妹妹穿的比我還像新娘。我一直安慰自己障贸,他們只是感情好错森,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著篮洁,像睡著了一般涩维。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袁波,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天瓦阐,我揣著相機(jī)與錄音蜗侈,去河邊找鬼。 笑死睡蟋,一個胖子當(dāng)著我的面吹牛踏幻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播戳杀,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼该面,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了豺瘤?” 一聲冷哼從身側(cè)響起吆倦,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎坐求,沒想到半個月后蚕泽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡桥嗤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年须妻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泛领。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡荒吏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出渊鞋,到底是詐尸還是另有隱情绰更,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布锡宋,位于F島的核電站儡湾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏执俩。R本人自食惡果不足惜徐钠,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望役首。 院中可真熱鬧尝丐,春花似錦、人聲如沸衡奥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矮固。三九已至呢簸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背根时。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留辰晕,地道東北人蛤迎。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像含友,于是被迫代替她去往敵國和親替裆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容