天天看點

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

上節課我們說了布爾運算和布爾值在代碼中的運用,今天我們來說說循環裡的四種新語句。

這4種新語句配合for循環和while循環,可以讓循環發揮更多的功能。我們逐個來看。

break語句

我們先來看看break語句。break的意思是“打破”,是用來結束循環的,一般寫作

if...break

。它的寫法長這樣:

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

在這裡,

if...break

的意思是如果滿足了某一個條件,就提前結束循環。記住,這個隻能在循環内部使用。

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

我們運作一下代碼來了解這一點。下面是一個for循環代碼,本來會循環5次,但循環到第4次的時候就被break語句打斷,然後結束循環了。

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

下面是一個while循環代碼,本來會循環5次,但循環到第3次的時候就被break語句打斷,然後結束循環了。

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

小小地提醒你,break前面一共縮進了【8個空格】。

這是因為if之下的語句要縮進4個空格(按一次Tab鍵),這裡的

if...break

又嵌套在while或for循環中,而循環語句本身又要縮進4個空格。這樣一來,break就縮進了【4+4=8】個空格(按兩次Tab鍵)。【注】:Tab鍵和空格鍵不能同時混用。

接下來,看個輕松點的小說案例,鞏固一下知識。

《西遊記》裡面有一個車遲國,車遲國裡面有個陳家莊,陳家莊的河裡有一個鯉魚精,每一年都要陳家莊上供一對童男童女給自己吃,莊裡的人家真是苦不堪言。

這種年複一年的循環狀态,在唐僧師徒來到這裡後,結束了。因為孫悟空制服了這個鯉魚精,百姓再也不用受苦了!真好。

如果用Python來展示這個故事:

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

運作看看這段代碼:你随便輸入幾個資料,點選enter,圍觀程式循環;然後再輸入“來了”,點選enter,結束循環。

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

第1行代碼:

while True

我們在上面見過了,這個條件恒為真,就會開啟無限循環。而

while True

常和break語句搭配使用,你也可以學着使用這種寫法。

第2行代碼:列印

上供一對童男童女

的字元串。第3行代碼:請使用者輸入一個資訊。

第4行代碼:如果使用者輸入的資訊是 “來了”,那麼if後面的條件被滿足,執行下面的代碼break;如果沒有,回到while True 繼續循環。

第5行代碼:break表示結束循環,然後去執行循環外部的代碼,即第6行代碼,列印

孫悟空制服了鯉魚精

的字元串。

接下來我們來練習一下break語句的程式設計。

我想請你寫下這樣一個程式,功能是請使用者輸入密碼,如果輸入了錯誤的密碼,就一直循環請使用者繼續輸入;如果輸入了正确的密碼,就結束循環。設定這個密碼為'小龍女'。(其實之前做過這題,有印象嗎?)

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

第1行:用while True 開啟了一個無限循環。你也可以用

while 1

或其他形式開啟一個無限循環。

第2行:用input() 函數擷取到了一個資料。第3行:如果這個資料等于之前設定的密碼,那麼就第4行:結束循環。如果這個資料不等于之前設定的密碼,那就回到第1行while True繼續循環。

第5行:結束循環後,就列印--登入成功。這已經是循環外部的代碼了,是以沒有縮進噢。

break子句,咱們就講到這裡。接下來“繼續”,continue語句。

continue語句

continue的意思是“繼續”。這個子句也是在循環内部使用的。當某個條件被滿足的時候,觸發continue語句,将跳過之後的代碼,直接回到循環的開始。

它的寫法是這樣的:

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句
else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

請觀察代碼,然後運作代碼看看是什麼結果:

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

上面的代碼,當

i==3

的時候會觸發continue語句,于是回到了循環開頭,跳過了一句print語句。

這樣的數字遊戲是不是有點無聊?不如再用一個小說例子來解解悶吧。《天龍八部》裡面有這樣一個情節:西夏公主招親選婿,吸引了許許多多的青年才俊。

西夏公主挑驸馬的方式是,是問這些青年3個問題。

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

這三個問題,隻有連續答對,才能判定他就是西夏公主的意中人;否則,隻要有任何一題錯,都要換人從頭開始回答問題。

事實上,西夏公主曾和她的意中人虛竹邂逅于一個黑暗的冰窖之中,但兩人不知對方姓名,隻互稱呼“夢姑”和“夢郎”,兩人也看不清彼此的臉。是以,西夏公主為了找到虛竹,才進行招親,并對候選者問出這三個問題。

如果用Python來描述這個故事,我想應該是這樣的:

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

别怕哈,表面上看這個代碼老長老長,其實不難,我們先看1-5行代碼。

第1、2行我就不說了,從第3行開始,當第一問的答案不是“黑暗的冰窖”時,就說明答錯了,必須從頭開始,是以使用continue提前開始循環,回到第1行代碼。

如果在第3行,有人回答對了,那麼

if q1

的條件為假,就會繼續執行第5行的代碼。之後的代碼都是同樣的道理。

再看10-13行代碼,到了最後一行,如果答對,就可以用break結束循環。答錯的話,重新開始,這裡就不需要continue了。

為了讓你更好地了解,請你運作下面的代碼:①你可以随便輸入,感受一下循環的邏輯,比如第一個答案對,第二個答案錯;或者第一、二個答案對,第三個答案錯。②當你玩得差不多了,請依次輸入‘黑暗的冰窖’,點選enter,再輸入‘夢姑’,點選enter,再輸入‘不知道’,點選enter,就能結束循環。

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

好,你可以看到continue的作用就是就是當某個條件為真時,又提前回到循環,而不會執行下面的代碼。

關于continue語句,我就講到這裡。接下來是pass語句。

pass語句

pass語句就非常簡單了,它的英文意思是“跳過”。

我們舉個例子,請你運作代碼體驗一下:

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

這個代碼的意思是:當

a>=100

的時候,跳過,什麼都不做。其他情況,也就是

a<100

的時候,執行一個print語句。

如果沒有pass來占據一個位置表示“什麼都不做”,以上的代碼執行起來會報錯:(請你先體驗一下報錯,然後把pass語句加上。)

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

好,pass語句就是這麼簡單,pass!

else語句

最後一種else語句,我們在條件判斷語句見過【else】,其實,else不但可以和if配合使用,它還能跟for循環和while循環配合使用。

舉一個例子;

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

以上這段代碼,請你做兩種嘗試:1.連續五次不輸入零;2.輸入一次0跳出循環。完成一種嘗試後,你可以點選【重做】按鈕,再來一次嘗試。

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句
else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

是以,用一句話總結,當循環中沒有碰到break語句,就會執行循環後面的else語句,否則就不會執行。

在while循環中,else的用法也是如此,格式一模一樣:

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

我們來做一個練習:把之前那段for循環的代碼改成while循環,要求運作起來效果一模一樣。

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

到這裡我們4種語句都學完了,我們做個總結:

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

由于循環的知識很重要,是以最後和大家再共同完成一個例題。

大家應該玩過一個小遊戲,就是一個人在心裡想好一個數,比如24,然後讓另一個人猜。如果他猜的數比24小,告訴他“太小了”,如果他猜的數比24大,告訴他“太大了”。

我們一起來完成這個“猜大小遊戲”的程式設計,我的思路大概是這樣的:

1.一個人在心裡想好一個數————這個數字是提前準備好的,可以設定一個變量來儲存這個數字。我就設定我的數字為24。

2.然後讓另一個人猜————是以可以使用input()函數來接收另一個人輸入的數字,并用int()轉化為整數。

3.直到猜對為止————天知道幾次才能猜對,是以肯定需要用到循環,并且由于不知道要循環幾次,是以适合while循環。

4.如果他猜的數比24小就告訴他“太小了”,如果他猜的數比24大就告訴他“太大了”——這裡一看“如果……就……”的描述,就知道應該用

if...else...

寫一個條件判斷。

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句
else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句
else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

假如我們改變一下題目:一個人在心裡想好一個數,比如24,然後讓另一個人猜。如果他猜的數比24小,告訴他“太小了”,如果他猜的數比24大,告訴他“太大了”,這個遊戲隻能猜3次,3次都猜不中,就告訴他“失敗了”。

請你再思考一下,這時候的解決方法應該是什麼?

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

既然是三次機會,那麼我們就利用range(3)生成0,1,2的序列,三次循環之後即會結束。

這裡我們重點看兩個地方:一是break,二是倒數第二句的else。

在for...in...循環中也可以使用break,正常情況下,三次機會用完之後就結束循環,但如果第一次就猜對了,也需要結束循環。前者我們能用range(3)解決,後者則依靠break語句。

for...in...可以和else語句搭配使用。意思是在for...in...循環結束之後,執行else語句裡的指令。

不過如果for...in...是因為break結束的就不會執行else語句裡的指令。

其實程式設計就是這樣,不斷拆解,不斷動手,不斷接受失敗,于是不斷成長。

好啦,關于“循環”的學習就告一段落了,最後送給同學們一句話:

else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

哈哈,get到了嗎?這是終生學習的意思,while True 開啟了一個死循環,一直執行learn() 這個學習的函數,是以代表着終生學習。

當然真實的Python中沒有

learn()

這個函數,但是我們的學習卻永遠不會止步。

----------------------------------------------------------------------------------------------

更多課程請關注:
else應輸入一個語句是什麼意思_Python語言難學嗎?第14講——循環裡的四種新語句

繼續閱讀