任何語言都有循環語句,在Python裏循環更是變化多端,有基本的循環,有循環else語句,引申出來的還有迭代器、推導式,我們先學習最簡單的一種。面試
while 條件判斷語句:
子代碼1
子代碼2
子代碼3
…
子代碼N
主代碼1
while語句的格式與if相似,子代碼必須進行縮進4個空格,做用倒是大不相同。當它執行第一次循環時,判斷條件是否成立,若是條件成立,就從子代碼1開始執行到子代碼N,而後程序會回到while語句再次判斷條件是否成立,若是成立就繼續從子代碼1開始執行,若是不成立就跳過子代碼段,系統從主代碼1開始日後執行。編程
話說在North Kingdom北境國的北面夜王控制了塞外,曾經春夏交織,如今天天雪花連綿,彷佛進入了無限循環狀態。dom
相似於永不中止的重複動做即無限循環,實現它須要在寫條件判斷語句時,直接寫上永遠爲True的判斷結果,簡單直接使用True,以實現了無窮循環的功能,以下面的程序所示:ide
>>> while True:
print('下雪')
下雪
下雪
下雪
下雪
下雪
下雪 (按下Ctrl+C來終止程序無窮運行)
KeyboardInterrupt
>>>
身爲北境守衛者的我 - 中文名雪諾(英文名Snow)決定越過長城北,解決掉夜王。國王Stannis請我在王宮500個最強壯的衛兵中,挑選10人同行,因爲時間有限不可能所有面試500人爲了公平,因而我決定由電腦隨機挑出1我的,經過後即出隊入選,這樣重複屢次直到10人選滿爲止。
關於這個挑人程序,如今分析以下:函數
本程序從500人的隊伍裏,隨機挑出,若是滿意就入選,不滿意就歸隊工具
1 import random #使用隨機數工具 2 volunteer = 500 3 while volunteer > 500-10: #當剩下的人數大於490時才繼續面試 4 test = random.randint(1,volunteer) 5 if(input('還剩下'+ str(volunteer)+'人,這是隨機挑選的第'+str(test)+'號,您滿意麼(y/n)?') == 'y'): 6 volunteer -= 1 #入選後隊伍就會少1人 7 print('您已經選足了10我的!')
上面程序使用了無限循環,爲實現知足選定10人就退出的功能,在循環裏進行了條件判斷,知足條件退出Python,程序運行結果以下所示:學習
還剩下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
您已經選足了10我的!
在運行過程當中第2次輸入不滿意n時,能夠看到剩下的人數499並無變化。spa
在這裏循環和判斷都是以前講過的內容,重點是下面的語句:code
import random
這句話是告訴計算機,我立刻要使用random模塊,模塊就是系統中提供高級功能的工具包。爲何要執行這條語句呢?主要是由於系統內置會提供一些功能,好比條件語句、判斷語句、計算語句,爲了節約內存不可能把全部功能都提供,因此當咱們使用手邊沒有的工具時(好比本程序用的隨機數)就要聲明,好讓程序加載到內存裏。blog
下面的語句裏,volunteer是變量,表示剩下的人總數,randint()這種帶括號形式的寫法,表示函數的執行,該函數返回從1到volunteer之間(也包括)任意隨機數(表明抽出的人的編號),最後把抽出的編號賦值保存於test變量。
test = random.randint(1,volunteer)
說明:當執行外部模塊的函數,要用英文符號圓點.
小牛叔傾情出品,史上更簡單有趣的Python入門系列教程,用認真、上心的原創帶你飛。
更多精彩的內容,能夠加關注做者,不走失。