Python趣味入門(mén)教程之循環(huán)語(yǔ)句while
前言
任何語(yǔ)言都有循環(huán)語(yǔ)句,在Python里循環(huán)更是變化無(wú)窮,有基本的循環(huán),有循環(huán)else語(yǔ)句,引伸出來(lái)的還有迭代器、推導(dǎo)式,咱們先學(xué)習(xí)最簡(jiǎn)單的一種。
While循環(huán)
while 條件判斷語(yǔ)句:子代碼1子代碼2子代碼3…子代碼N主代碼1
while語(yǔ)句的格式與if類似,子代碼必須進(jìn)行縮進(jìn)4個(gè)空格,作用卻是大不相同。當(dāng)它執(zhí)行第一次循環(huán)時(shí),判斷條件是否成立,如果條件成立,就從子代碼1開(kāi)始執(zhí)行到子代碼N,然后程序會(huì)回到while語(yǔ)句再次判斷條件是否成立,如果成立就繼續(xù)從子代碼1開(kāi)始執(zhí)行,如果不成立就跳過(guò)子代碼段,系統(tǒng)從主代碼1開(kāi)始往后執(zhí)行。
話說(shuō)在North Kingdom北境國(guó)的北面夜王控制了塞外,曾經(jīng)春夏交織,現(xiàn)在每天雪花連綿,似乎進(jìn)入了無(wú)限循環(huán)狀態(tài)。
類似于永不停止的重復(fù)動(dòng)作即無(wú)限循環(huán),實(shí)現(xiàn)它需要在寫(xiě)條件判斷語(yǔ)句時(shí),直接寫(xiě)上永遠(yuǎn)為T(mén)rue的判斷結(jié)果,簡(jiǎn)單直接使用True,以實(shí)現(xiàn)了無(wú)窮循環(huán)的功能,如下面的程序所示:
>>> while True: print(’下雪’) 下雪 下雪 下雪 下雪 下雪 下雪 (按下Ctrl+C來(lái)終止程序無(wú)窮運(yùn)行) KeyboardInterrupt >>>
身為北境守衛(wèi)者的我 - 中文名雪諾(英文名Snow)決定越過(guò)長(zhǎng)城北,解決掉夜王。國(guó)王Stannis請(qǐng)我在王宮500個(gè)最強(qiáng)壯的衛(wèi)兵中,挑選10人同行,由于時(shí)間有限不可能全部面試500人為了公平,于是我決定由電腦隨機(jī)挑出1個(gè)人,通過(guò)后即出隊(duì)入選,這樣重復(fù)多次直到10人選滿為止。關(guān)于這個(gè)挑人程序,現(xiàn)在分析如下:
首先定義隊(duì)伍人數(shù),初始值是500。 面試后如選中一人,隊(duì)伍中會(huì)少一個(gè)人。 如果未選中,讓其歸隊(duì),隊(duì)伍人數(shù)不會(huì)變化。 無(wú)論上一次有沒(méi)有選中,只需要在剩下的人數(shù)里再繼續(xù)產(chǎn)生隨機(jī)數(shù)(注意:并不是從原來(lái)整個(gè)500人中產(chǎn)生)。 如果剩下的人數(shù)是490人就意味著10人已經(jīng)選滿,循環(huán)結(jié)束。 至此邏輯已經(jīng)很清楚了,看看您是不是已經(jīng)把程序?qū)懗鰜?lái)了呢?本程序從500人的隊(duì)伍里,隨機(jī)挑出,如果滿意就入選,不滿意就歸隊(duì)
import random #使用隨機(jī)數(shù)工具volunteer = 500while volunteer > 500-10: #當(dāng)剩下的人數(shù)大于490時(shí)才繼續(xù)面試 test = random.randint(1,volunteer) if(input(’還剩下’+ str(volunteer)+’人,這是隨機(jī)挑選的第’+str(test)+’號(hào),您滿意么(y/n)?’) == ’y’): volunteer -= 1 #入選后隊(duì)伍就會(huì)少1人print(’您已經(jīng)選足了10個(gè)人!’)
上面程序使用了無(wú)限循環(huán),為實(shí)現(xiàn)滿足選定10人就退出的功能,在循環(huán)里進(jìn)行了條件判斷,滿足條件退出Python,程序運(yùn)行結(jié)果如下所示:
還剩下500人,這是隨機(jī)挑選的第329號(hào),您滿意么(y/n)?y還剩下499人,這是隨機(jī)挑選的第113號(hào),您滿意么(y/n)?n還剩下499人,這是隨機(jī)挑選的第176號(hào),您滿意么(y/n)?y還剩下498人,這是隨機(jī)挑選的第243號(hào),您滿意么(y/n)?y還剩下497人,這是隨機(jī)挑選的第315號(hào),您滿意么(y/n)?y還剩下496人,這是隨機(jī)挑選的第413號(hào),您滿意么(y/n)?y還剩下495人,這是隨機(jī)挑選的第375號(hào),您滿意么(y/n)?y還剩下494人,這是隨機(jī)挑選的第440號(hào),您滿意么(y/n)?y還剩下493人,這是隨機(jī)挑選的第389號(hào),您滿意么(y/n)?y還剩下492人,這是隨機(jī)挑選的第388號(hào),您滿意么(y/n)?y還剩下491人,這是隨機(jī)挑選的第231號(hào),您滿意么(y/n)?y您已經(jīng)選足了10個(gè)人!
在運(yùn)行過(guò)程中第2次輸入不滿意n時(shí),可以看到剩下的人數(shù)499并沒(méi)有變化。
在這里循環(huán)和判斷都是之前講過(guò)的內(nèi)容,重點(diǎn)是下面的語(yǔ)句:
import random
這句話是告訴計(jì)算機(jī),我馬上要使用random模塊,模塊就是系統(tǒng)中提供高級(jí)功能的工具包。為什么要執(zhí)行這條語(yǔ)句呢?主要是因?yàn)橄到y(tǒng)內(nèi)置會(huì)提供一些功能,比如條件語(yǔ)句、判斷語(yǔ)句、計(jì)算語(yǔ)句,為了節(jié)約內(nèi)存不可能把所有功能都提供,所以當(dāng)我們使用手邊沒(méi)有的工具時(shí)(比如本程序用的隨機(jī)數(shù))就要聲明,好讓程序加載到內(nèi)存里。
下面的語(yǔ)句里,volunteer是變量,表示剩下的人總數(shù),randint()這種帶括號(hào)形式的寫(xiě)法,表示函數(shù)的執(zhí)行,該函數(shù)返回從1到volunteer之間(也包括)任意隨機(jī)數(shù)(代表抽出的人的編號(hào)),最后把抽出的編號(hào)賦值保存于test變量。
test = random.randint(1,volunteer)
說(shuō)明:當(dāng)執(zhí)行外部模塊的函數(shù),要用英文符號(hào)圓點(diǎn).
Python趣味入門(mén)4:while循環(huán)示例
總結(jié)
到此這篇關(guān)于Python趣味入門(mén)教程之循環(huán)語(yǔ)句while的文章就介紹到這了,更多相關(guān)Python循環(huán)語(yǔ)句while內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 詳解Android studio 動(dòng)態(tài)fragment的用法2. 解決Android studio xml界面無(wú)法預(yù)覽問(wèn)題3. 圖文詳解vue中proto文件的函數(shù)調(diào)用4. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁(yè)效果(實(shí)例代碼)5. php模擬實(shí)現(xiàn)斗地主發(fā)牌6. 什么是python的自省7. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)8. vue 使用localstorage實(shí)現(xiàn)面包屑的操作9. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟10. Vuex localStorage的具體使用

網(wǎng)公網(wǎng)安備