Python趣味入門教程之循環(huán)語句while
前言
任何語言都有循環(huán)語句,在Python里循環(huán)更是變化無窮,有基本的循環(huán),有循環(huán)else語句,引伸出來的還有迭代器、推導式,咱們先學習最簡單的一種。
While循環(huán)
while 條件判斷語句:
子代碼1
子代碼2
子代碼3
…
子代碼N
主代碼1
while語句的格式與if類似,子代碼必須進行縮進4個空格,作用卻是大不相同。當它執(zhí)行第一次循環(huán)時,判斷條件是否成立,如果條件成立,就從子代碼1開始執(zhí)行到子代碼N,然后程序會回到while語句再次判斷條件是否成立,如果成立就繼續(xù)從子代碼1開始執(zhí)行,如果不成立就跳過子代碼段,系統(tǒng)從主代碼1開始往后執(zhí)行。
話說在North Kingdom北境國的北面夜王控制了塞外,曾經(jīng)春夏交織,現(xiàn)在每天雪花連綿,似乎進入了無限循環(huán)狀態(tài)。
類似于永不停止的重復動作即無限循環(huán),實現(xiàn)它需要在寫條件判斷語句時,直接寫上永遠為True的判斷結(jié)果,簡單直接使用True,以實現(xiàn)了無窮循環(huán)的功能,如下面的程序所示:
>>> while True:
print('下雪')
下雪
下雪
下雪
下雪
下雪
下雪 (按下Ctrl+C來終止程序無窮運行)
KeyboardInterrupt
>>>
身為北境守衛(wèi)者的我 - 中文名雪諾(英文名Snow)決定越過長城北,解決掉夜王。國王Stannis請我在王宮500個最強壯的衛(wèi)兵中,挑選10人同行,由于時間有限不可能全部面試500人為了公平,于是我決定由電腦隨機挑出1個人,通過后即出隊入選,這樣重復多次直到10人選滿為止。
關(guān)于這個挑人程序,現(xiàn)在分析如下:
- 首先定義隊伍人數(shù),初始值是500。
- 面試后如選中一人,隊伍中會少一個人。
- 如果未選中,讓其歸隊,隊伍人數(shù)不會變化。
- 無論上一次有沒有選中,只需要在剩下的人數(shù)里再繼續(xù)產(chǎn)生隨機數(shù)(注意:并不是從原來整個500人中產(chǎn)生)。
- 如果剩下的人數(shù)是490人就意味著10人已經(jīng)選滿,循環(huán)結(jié)束。
至此邏輯已經(jīng)很清楚了,看看您是不是已經(jīng)把程序?qū)懗鰜砹四兀?br />
本程序從500人的隊伍里,隨機挑出,如果滿意就入選,不滿意就歸隊
import random #使用隨機數(shù)工具 volunteer = 500 while volunteer > 500-10: #當剩下的人數(shù)大于490時才繼續(xù)面試 test = random.randint(1,volunteer) if(input('還剩下'+ str(volunteer)+'人,這是隨機挑選的第'+str(test)+'號,您滿意么(y/n)?') == 'y'): volunteer -= 1 #入選后隊伍就會少1人 print('您已經(jīng)選足了10個人!')
上面程序使用了無限循環(huán),為實現(xiàn)滿足選定10人就退出的功能,在循環(huán)里進行了條件判斷,滿足條件退出Python,程序運行結(jié)果如下所示:
還剩下500人,這是隨機挑選的第329號,您滿意么(y/n)?y
還剩下499人,這是隨機挑選的第113號,您滿意么(y/n)?n
還剩下499人,這是隨機挑選的第176號,您滿意么(y/n)?y
還剩下498人,這是隨機挑選的第243號,您滿意么(y/n)?y
還剩下497人,這是隨機挑選的第315號,您滿意么(y/n)?y
還剩下496人,這是隨機挑選的第413號,您滿意么(y/n)?y
還剩下495人,這是隨機挑選的第375號,您滿意么(y/n)?y
還剩下494人,這是隨機挑選的第440號,您滿意么(y/n)?y
還剩下493人,這是隨機挑選的第389號,您滿意么(y/n)?y
還剩下492人,這是隨機挑選的第388號,您滿意么(y/n)?y
還剩下491人,這是隨機挑選的第231號,您滿意么(y/n)?y
您已經(jīng)選足了10個人!
在運行過程中第2次輸入不滿意n時,可以看到剩下的人數(shù)499并沒有變化。
在這里循環(huán)和判斷都是之前講過的內(nèi)容,重點是下面的語句:
import random
這句話是告訴計算機,我馬上要使用random模塊,模塊就是系統(tǒng)中提供高級功能的工具包。為什么要執(zhí)行這條語句呢?主要是因為系統(tǒng)內(nèi)置會提供一些功能,比如條件語句、判斷語句、計算語句,為了節(jié)約內(nèi)存不可能把所有功能都提供,所以當我們使用手邊沒有的工具時(比如本程序用的隨機數(shù))就要聲明,好讓程序加載到內(nèi)存里。
下面的語句里,volunteer是變量,表示剩下的人總數(shù),randint()這種帶括號形式的寫法,表示函數(shù)的執(zhí)行,該函數(shù)返回從1到volunteer之間(也包括)任意隨機數(shù)(代表抽出的人的編號),最后把抽出的編號賦值保存于test變量。
test = random.randint(1,volunteer)
說明:當執(zhí)行外部模塊的函數(shù),要用英文符號圓點.
Python趣味入門4:while循環(huán)示例
總結(jié)
到此這篇關(guān)于Python趣味入門教程之循環(huán)語句while的文章就介紹到這了,更多相關(guān)Python循環(huán)語句while內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解python實現(xiàn)識別手寫MNIST數(shù)字集的程序
這篇文章主要介紹了詳解python實現(xiàn)識別手寫MNIST數(shù)字集的程序,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08PyTorch實現(xiàn)聯(lián)邦學習的基本算法FedAvg
這篇文章主要為大家介紹了PyTorch實現(xiàn)聯(lián)邦學習的基本算法FedAvg,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05關(guān)于matplotlib-legend 位置屬性 loc 使用說明
這篇文章主要介紹了關(guān)于matplotlib-legend 位置屬性 loc 使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05