詳細(xì)說(shuō)一下 Python 的 while循環(huán)

在上一篇文章中,我們介紹了 Python 三大控制結(jié)構(gòu)
【小白學(xué) Python】吃了一頓火鍋,學(xué)會(huì)了 Python 三大核心控制結(jié)構(gòu):小心看餓了
今天,我們接著看一下 while 循環(huán)
Python提供了另一種循環(huán)模式即無(wú)限循環(huán),不需要提前知道循環(huán)次數(shù),
那就是while循環(huán)。
while循環(huán)一直執(zhí)行,指導(dǎo)制定的條件不滿足為止。
語(yǔ)法:
while 條件:語(yǔ)句組11. 循環(huán)也是以冒號(hào)(:)結(jié)尾2. 條件為各種算術(shù)表達(dá)式,a) 當(dāng)為真時(shí),語(yǔ)句組1被重復(fù)執(zhí)行b) 當(dāng)為假時(shí),停止執(zhí)行語(yǔ)句組13. 如果循環(huán)體忘記累計(jì),條件判斷一直為真,則為死循環(huán)。循環(huán)體一直實(shí)行。a) 死循環(huán)有時(shí)候經(jīng)常被用來(lái)構(gòu)建無(wú)限循環(huán)b) 此時(shí),可以使用ctrl+c終止,或者停止IDE

來(lái)看一個(gè)例子:
# 構(gòu)造計(jì)數(shù)器,記錄5次print('使用while循環(huán)構(gòu)造計(jì)數(shù)器,并且記錄5次')count_number = 0while count_number < 5:print(f'\t當(dāng)前數(shù)字是 {count_number}')count_number += 1使用while循環(huán)構(gòu)造計(jì)數(shù)器,并且記錄5次當(dāng)前數(shù)字是 0當(dāng)前數(shù)字是 1當(dāng)前數(shù)字是 2當(dāng)前數(shù)字是 3當(dāng)前數(shù)字是 4
?
為了更好的體驗(yàn),程序有時(shí)候使用用戶輸入。
在 Python 中使用函數(shù) input() 讓程序暫停工作,等待用戶輸入后接著執(zhí)行。
當(dāng)使用該函數(shù)時(shí),一定要給出清晰而易于明白的指示,否則用戶不知道要輸入什么內(nèi)容。
例子# 計(jì)算任意數(shù)的和, 并計(jì)算出平均數(shù)sum = 0.0count = 0more_number = "yes"while "y" in more_number:# 使用y判斷是否繼續(xù)number =int(input("請(qǐng)輸入一個(gè)數(shù)字:"))sum = sum + numbercount = count + 1more_number = input("還想接著輸入數(shù)字嗎?(y or n)?")print("\n你輸入的所有數(shù)字的平均值是:", sum / count)請(qǐng)輸入一個(gè)數(shù)字:1還想接著輸入數(shù)字嗎?(y or n)?y請(qǐng)輸入一個(gè)數(shù)字:2還想接著輸入數(shù)字嗎?(y or n)?y請(qǐng)輸入一個(gè)數(shù)字:3還想接著輸入數(shù)字嗎?(y or n)?n你輸入的所有數(shù)字的平均值是:2.0
break與continue語(yǔ)句可以在循環(huán)結(jié)構(gòu)中使用,比如for,while。
break語(yǔ)句是立即退出while循環(huán),不再運(yùn)行循環(huán)中余下的代碼,也不管條件判斷的結(jié)果是否為真。
break語(yǔ)句經(jīng)常被用來(lái)控制程序執(zhí)行流,也就是控制哪些代碼可以執(zhí)行,哪些代碼不執(zhí)行。
continue語(yǔ)句是結(jié)束本次循環(huán),返回到while語(yǔ)句開(kāi)始的位置,接著條件判斷。
如果為真,程序接著執(zhí)行,否則退出。也就是當(dāng)循環(huán)或判斷執(zhí)行到continue語(yǔ)句時(shí),continue后的語(yǔ)句將不再執(zhí)行,會(huì)跳出當(dāng)次循環(huán),繼續(xù)執(zhí)行循環(huán)中的下一次循環(huán)
兩者的區(qū)別是:
continue 語(yǔ)句跳出本次循環(huán),只跳過(guò)本次循環(huán)continue后的語(yǔ)句
break 語(yǔ)句跳出整個(gè)循環(huán)體,循環(huán)體中未執(zhí)行的循環(huán)將不會(huì)執(zhí)行
例子
# 點(diǎn)名系統(tǒng),一共100個(gè)人。當(dāng)數(shù)到50的時(shí)候,提示以下;當(dāng)數(shù)到60時(shí),停止報(bào)數(shù)for i in range(101):if i == 50:print(f'你是第{i}名,請(qǐng)接著報(bào)數(shù)......')continue# 如果是第60個(gè)人,則停止循環(huán)if i == 60:print(f'你是第{i}名,停止報(bào)數(shù)!')break你是第50名,請(qǐng)接著報(bào)數(shù)......你是第60名,停止報(bào)數(shù)!
列表和字典可以存儲(chǔ)大量信息。
for循環(huán)可以遍歷其每一個(gè)元素或者鍵值對(duì),但是我們不建議在for循環(huán)修改其值,否則導(dǎo)致Python不能正常運(yùn)行;
如果遍歷列表或字典的同時(shí),修改其值,我們推薦使用while循環(huán)。
例子1 :while操作列表
'''《甄嬛傳》之選秀1。首先創(chuàng)建一個(gè)秀女列表,其中魏瓔珞不是參選秀女2。再創(chuàng)建一個(gè)空的列表,用來(lái)收集已經(jīng)選中的秀女整個(gè)過(guò)程需要修改列表的元素'''xiu_nu = ['魏瓔珞','甄嬛','安陵容','沈眉莊','夏春']ru_xuan = []# 使用while循環(huán)選擇秀女,直到選擇結(jié)束# 把選中的修女收集起來(lái),未選中的刪除while xiu_nu:kaoshi_xuanyu = xiu_nu.pop()print(f"正在參加選秀的修女是:{kaoshi_xuanyu}")if '魏瓔珞' in kaoshi_xuanyu:print(f'\t{kaoshi_xuanyu}不能參加本次選秀')else:print('\t恭喜 {} 入選'.format(kaoshi_xuanyu))ru_xuan.append(kaoshi_xuanyu)# 打印所有選中的秀女print('以下是選中的秀女人員名單:')for index in ru_xuan:print('\t'+index.title())正在參加選秀的修女是:夏春恭喜夏春入選正在參加選秀的修女是:沈眉莊恭喜沈眉莊入選正在參加選秀的修女是:安陵容恭喜安陵容入選正在參加選秀的修女是:甄嬛恭喜甄嬛入選正在參加選秀的修女是:魏瓔珞魏瓔珞不能參加本次選秀以下是選中的秀女人員名單:夏春沈眉莊安陵容甄嬛
再看一個(gè)例子:例子2: while操作字典
'''觀眾最喜歡的電視劇問(wèn)卷調(diào)查'''# 構(gòu)建空的字典,存放調(diào)查結(jié)果favorite_television = {}while 1:# 構(gòu)建一個(gè)無(wú)限循環(huán)your_name= input("請(qǐng)輸入你最喜歡的電視劇明星的名字:")favorite_televisions = input("請(qǐng)輸入你最喜歡的他/她演過(guò)的電視劇名字:")favorite_television[your_name] = favorite_televisionsanother = input("是否還有人參與調(diào)查。如果輸入yes,繼續(xù),否則停止:")if another != 'yes':break# 結(jié)束調(diào)查,打印結(jié)果print("觀眾最喜愛(ài)的電視劇問(wèn)卷調(diào)查情況:")for key,value in favorite_television.items():print(f'觀眾最喜歡的電視明星有:{key}。觀眾最喜歡的他/她演過(guò)的電視劇是 {value}.')請(qǐng)輸入你最喜歡的電視劇明星的名字:劉德華請(qǐng)輸入你最喜歡的他/她演過(guò)的電視劇名字:鹿鼎記是否還有人參與調(diào)查。如果輸入yes,繼續(xù),否則停止:yes請(qǐng)輸入你最喜歡的電視劇明星的名字:楊冪請(qǐng)輸入你最喜歡的他/她演過(guò)的電視劇名字:扶搖是否還有人參與調(diào)查。如果輸入yes,繼續(xù),否則停止:yes請(qǐng)輸入你最喜歡的電視劇明星的名字:秦嵐請(qǐng)輸入你最喜歡的他/她演過(guò)的電視劇名字:延禧攻略是否還有人參與調(diào)查。如果輸入yes,繼續(xù),否則停止:no觀眾最喜愛(ài)的電視劇問(wèn)卷調(diào)查情況:觀眾最喜歡的電視明星有:劉德華。觀眾最喜歡的他/她演過(guò)的電視劇是鹿鼎記.觀眾最喜歡的電視明星有:楊冪。觀眾最喜歡的他/她演過(guò)的電視劇是扶搖.觀眾最喜歡的電視明星有:秦嵐。觀眾最喜歡的他/她演過(guò)的電視劇是延禧攻略.
以上就是 Python的循環(huán)結(jié)構(gòu)。希望您能有所收獲。
如果有問(wèn)題,可以后臺(tái)或留言討論哦!
【提高】40多個(gè)項(xiàng)目實(shí)戰(zhàn),老手可以從真實(shí)場(chǎng)景中學(xué)習(xí)python;
【直播】不定期直播項(xiàng)目案例講解,手把手教你如何分析項(xiàng)目;
【分享】?jī)?yōu)質(zhì)python學(xué)習(xí)資料分享,讓你在最短時(shí)間獲得有價(jià)值的學(xué)習(xí)資源;圈友優(yōu)質(zhì)資料或?qū)W習(xí)分享,會(huì)不時(shí)給予贊賞支持,希望每個(gè)優(yōu)質(zhì)圈友既能賺回加入費(fèi)用,也能快速成長(zhǎng),并享受分享與幫助他人的樂(lè)趣。
【人脈】收獲一群志同道合的朋友,并且都是python從業(yè)者
【價(jià)格】本著布道思想,只需 69元 加入一個(gè)能保證學(xué)習(xí)效果的良心圈子。
