Python While迴圈語句(二)
好啦,咋們來了,繼續吧。
本章學習點:
while else
break 與 continue
上節小作業(模仿銀行輸入的密碼出錯3次,而鎖定賬戶(三次重新輸入密碼的機會))
一. While else 組合
在我們上節已經說過了while的運用,但是有趣的是,Python還有個while else 組合,其實這個組合是 if...else... 的親戚呢。這個是什麼意思呢?意思就是 while 條件不成立的時候,就執行 else 否則的程式碼塊,這與 if...else.. 組合非常相似呀,只是說while是可以進行迴圈而已,而 if...else... 沒有迴圈這個功能而已啦。現在接下來看看程式碼吧。
# !/usr/bin/env python
# -*- coding:utf8 -*-
number = 9
while number < 10:
print(number)
number = number + 1
else:
print("else ")
執行結果是:
9
else
二. break 與 continue
這兩個關鍵字,顧名思義,就是打斷跳出和 打斷繼續,這正符合while使用這兩個關鍵字的功能描述。為什麼這麼說呢?還是使用上面的例子進行更改驗證。
continue
程式規定,若要打印出1 2 3 4 5 6 7 9 使用以下程式碼即可。
# !/usr/bin/env python # -*- coding:utf8 -*- number = 1 while number < 10: if number == 8: number = number + 1 continue print(number) number = number + 1
咋們來解釋下以上程式碼吧。在number等於8的時候,就讓number加一,但是continue是什麼意思呢?是一個怎麼樣的執行步驟呢?當執行continue的時候,continue下面的程式碼就執行了,就會直接跳轉到while迴圈的條件,進行條件判斷number是否小於10,如果小於10,就會進行執行迴圈程式碼塊,這時候number已經等於9了,還是可以進行執行。所以就打印出1 2 3 4 5 6 7 9。
break
程式規定使用以上程式碼,若要在number等於8的時候,立馬結束迴圈,最後再迴圈體外打印出end語句,就可以使用以下程式碼。
# !/usr/bin/env python # -*- coding:utf8 -*- number = 1 while number < 10: if number == 8: break print(number) number = number + 1 print("end")
執行結果是:1 2 3 4 5 6 7 end
那麼你會發現 print(number) 和 number = number + 1 當進入number等於8的時候,執行了break後,這兩句話並沒有執行,這是為什麼呢?咋們來仔細分析下,當number等於8的時候,執行break,而break是打斷跳出迴圈,那麼就直接執行while迴圈體外的程式碼了,也就是print("end") 程式碼。
以上就是break與continue的區別了。總結以下:
continue 是終止當前迴圈,開始下一次迴圈。 break 是終止所有迴圈。
三. 模仿銀行輸入的密碼出錯3次,而鎖定賬戶(三次重新輸入密碼的機會)
# !/usr/bin/env python
# -*- coding:utf8 -*-
count = 0
while count < 3:
name = input("請輸入使用者名稱:")
password = input("請輸入密碼:")
if name == "root" and password == "123":
print("密碼輸入正確")
break
else:
print("使用者名稱或者密碼錯誤")
count = count + 1