Python學(xué)習(xí)日記-循環(huán)語(yǔ)句

本章目錄

  • Part One:while循環(huán)
  • Part Two:for循環(huán)
  • Part Three:continue和break
  • Part Four:else語(yǔ)句

循環(huán)結(jié)構(gòu)可以使得程序在滿足某個(gè)條件的情況下,反復(fù)執(zhí)行相同的代碼曲横,比如計(jì)算1 + 2 + 3 + ... + 100就可以用循環(huán)來(lái)操作调鲸。

while循環(huán)

while循環(huán)就是操作循環(huán)的方法之一必指,它的語(yǔ)法格式和if語(yǔ)法格式極為相似:

while 循環(huán)條件:
    # 循環(huán)體

Python會(huì)循環(huán)執(zhí)行循環(huán)體凯旭,直到循環(huán)條件不滿足為止惫霸。比如封恰,我們計(jì)算1到100的和:

x = 1
total = 0
while x <= 100:
    total = total + x
    x += 1
print(total)

結(jié)果自然是:

5050

同樣的矮烹,我們也可以用列表來(lái)操作:

# Python提供一個(gè)range()函數(shù)越庇,可以生成一個(gè)整數(shù)序列罩锐,range(101)就是0 - 100
# 再通過(guò)list()函數(shù)可以轉(zhuǎn)換為list
numbers = list(range(101))
total = 0
while len(numbers) > 0:
    # pop(索引)是刪除指定位置的元素,并返回該元素的值
    total = total + numbers.pop(0)
print(total)

for循環(huán)

Python中的for循環(huán)跟Java里的增強(qiáng)for循環(huán)的寫法比較類似卤唉,從語(yǔ)法角度上更符合人閱讀文章的習(xí)慣涩惑,它的語(yǔ)法結(jié)構(gòu)為:

for 變量 in 變量序列:
    # 循環(huán)體

for 循環(huán)會(huì)遍歷完變量序列中所有元素為止,比如之前的計(jì)算1 - 100可以改寫為:

total = 0
for number in range(101):
    total = total + number
print(total)

注意桑驱,使用for循環(huán)的時(shí)候竭恬,盡量不要改變列表的值,否則會(huì)有很多困惑熬的,比如不改變列表的值:

numbers = list(range(101))
total = 0
for number in numbers:
    print(number, end="\t")
    print(numbers.index(number))
    total = total + number
print(total)

結(jié)果為:

0   0
1   1
2   2
3   3
4   4
5   5
6   6
...
5050

而改變列表的值呢

numbers = list(range(101))
total = 0
for number in numbers:
    print(number, end="\t")
    print(numbers.index(number))
    # 該值索引位置的值加1
    numbers[numbers.index(number)] += 1
    total = total + number
print(total)

結(jié)果為:

0   0
1   0
2   0
3   0
4   0
5   0
6   0
...
5050

理論上后一行的代碼是不會(huì)影響到前一行的代碼痊硕,但是結(jié)果就是改變。悦析。寿桨。具體原理是什么此衅,有待研究强戴,等以后學(xué)好了再回來(lái)看看。

continue和break

  1. continue
    在循環(huán)中使用continue挡鞍,表示跳出本次循環(huán)骑歹,直接進(jìn)入下一次循環(huán)。比如計(jì)算1 - 100的奇數(shù)之和:
odd_total = 0
for number in range(101):
    # 如果number是偶數(shù)墨微,跳出本次循環(huán)道媚,繼續(xù)下一次循環(huán)
    if number % 2 == 0:
        continue
    odd_total = odd_total + number
print(odd_total)

最后的結(jié)果為:

2500
  1. break
    遇到break的時(shí)候,程序會(huì)跳出循環(huán)翘县,不管循環(huán)條件是不是滿足最域,例如:
total = 0
temp = 0
# 定義一個(gè)無(wú)限循環(huán)
while True:
    temp = temp + 1
    total = total + temp
    # 如果值到了100,跳出循環(huán)
    if temp == 100:
        break
print(total)

結(jié)果為:

5050

else語(yǔ)句

else語(yǔ)句可以和循環(huán)配套使用锈麸,比如用來(lái)遍歷镀脂,然后判斷某個(gè)元素是否存在。

  1. 使用時(shí)忘伞,最好配合break語(yǔ)句:
values = ["Java", "Android", "Python"]
index = 0
while index < len(values):
    if values[index] == "C":
        print("C exists.")
        break
    index += 1
else:
    print("C does not exist.")

結(jié)果為:

C does not exist.
  1. 如果將比較對(duì)象改為Java:
values = ["Java", "Android", "Python"]
index = 0
while index < len(values):
    if values[index] == "Java":
        print("Java exists.")
        break
    index += 1
else:
    print("Java does not exist.")

結(jié)果為:

Java exists.
  1. 如果去掉break語(yǔ)句薄翅,則else語(yǔ)句始終執(zhí)行:
values = ["Java", "Android", "Python"]
index = 0
while index < len(values):
    if values[index] == "Java":
        print("Java exists.")
    index += 1
else:
    print("Java does not exist.")

結(jié)果為:

Java exists.
Java does not exist.
  1. 和for循環(huán)配套使用:
values = ["Java", "Android", "Python"]
for value in values:
    if value == "Java":
        print("Java exists.")
        break
else:
    print("Java does not exist.")

結(jié)果為:

Java exists.
  1. 如果把else放到循環(huán)里,和if配合使用:
values = ["Java", "Android", "Python"]
for value in values:
    if value == "Android":
        print("Android exists.")
        break
    else:
        print("Android does not exist.")

結(jié)果為:

Android does not exist.
Android exists.

與我們的需求不符合氓奈,所以在遍歷查找某個(gè)元素是否存在時(shí)翘魄,可以用循環(huán)配合else語(yǔ)句一起使用,其效果等同于 列表.index(元素)舀奶。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末暑竟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子育勺,更是在濱河造成了極大的恐慌光羞,老刑警劉巖绩鸣,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異纱兑,居然都是意外死亡呀闻,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門潜慎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)捡多,“玉大人,你說(shuō)我怎么就攤上這事铐炫±菔郑” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵倒信,是天一觀的道長(zhǎng)科贬。 經(jīng)常有香客問(wèn)我,道長(zhǎng)鳖悠,這世上最難降的妖魔是什么榜掌? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮乘综,結(jié)果婚禮上憎账,老公的妹妹穿的比我還像新娘。我一直安慰自己卡辰,他們只是感情好胞皱,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著九妈,像睡著了一般反砌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上萌朱,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天宴树,我揣著相機(jī)與錄音,去河邊找鬼嚷兔。 笑死森渐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的冒晰。 我是一名探鬼主播同衣,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼壶运!你這毒婦竟也來(lái)了耐齐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎埠况,沒(méi)想到半個(gè)月后耸携,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辕翰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年夺衍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喜命。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡沟沙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出壁榕,到底是詐尸還是另有隱情矛紫,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布牌里,位于F島的核電站颊咬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏牡辽。R本人自食惡果不足惜喳篇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望催享。 院中可真熱鬧杭隙,春花似錦哟绊、人聲如沸因妙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)攀涵。三九已至,卻和暖如春洽沟,著一層夾襖步出監(jiān)牢的瞬間以故,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工裆操, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留怒详,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓踪区,卻偏偏與公主長(zhǎng)得像昆烁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子缎岗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

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

  • 作者的序言 朋友們静尼,棄療系列4出來(lái)啦,作者還并沒(méi)有放棄,感覺(jué)自己萌萌噠鼠渺,233鸭巴。 語(yǔ)句 js程序其實(shí)就是一系列可執(zhí)...
    zhaolion閱讀 1,747評(píng)論 0 8
  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,132評(píng)論 0 13
  • Lua 5.1 參考手冊(cè) by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,770評(píng)論 0 38
  • 大掃除結(jié)束拦盹,看著干凈整潔的家很舒服鹃祖。不過(guò)呢,家普舆,除了干凈整潔惯豆,更重要的是要能治愈勞累了一天的我們。在收拾的同時(shí)要考...
    呂明超閱讀 121評(píng)論 0 0
  • 1 一樹的暗綠明黃快要謝幕奔害, 片片凋落的都是扯碎的布楷兽, 只待良人歸來(lái)一一縫補(bǔ)。 2 你陪我看過(guò)陰郁的天空华临, 我?guī)?..
    Crazy麻麻閱讀 400評(píng)論 5 11