上節練習詳解:
我們首先創建一個變量方便我們存儲多個提示字符串,然後我們採用上節提到到使用標誌來控制整個循環;當用戶輸入為'quit'的時候,我們將標誌的值置為False;否則就列印一條消息我們將要往pizza中加入什麼食材來提醒用戶:
我們可以看到,輸出和我們想要的結果完全一致。
使用break退出循環要立刻退出while循環,不再運行循環中餘下的代碼,也不管條件測試的結果如何,可使用break語句。break語句用於控制程序流程,可使用它來控制哪些代碼運行,哪些代碼不執行,從而讓程序按照你的要求執行你的代碼。例如,來看一個讓用戶指出他到過哪些地方的程序。在這個程序中,我們可以在用戶輸入'quit'後使用break語句立即退出循環:
以while True打頭的循環將不斷運行,直到遇到break語句。這個程序中的循環不斷輸入用戶到過的城市的名字,直到他輸入'quit'為止。用戶輸入'quit'之後,將執行break語句,導致python退出循環。
2.在循環中使用continue
要返回到循環開頭,並根據條件測試結果決定是否繼續執行循環,可使用continue語句,它不像break語句那樣不再執行餘下的代碼並退出整個循環。例如,來看一個從1數到10,但只列印其中奇數的循環:
我們首先將current_number設置成了0,由於它小於10,python將進入while循環。進入循環後,我們將以步長1的方式往上數,因此current_number為1。接下來,if語句檢查current_number與2求模運算結果。如果結果為0,那麼就意味著current_number可以被2整除,就執行循環中餘下的代碼,python將這個數字列印出來:
3.避免無限循環
每個while循環都必須有停止運行的途徑,這樣才不會沒完沒了地執行下去。例如,下面的循環從1數到5:
但如果我們不小心將x += 1這一行代碼遺漏的話,這個循環就會無限進行下去:
在這裡,x的初始值為1,但根本不會變,因此條件測試x <= 5始終為True,導致while循環沒完沒了地列印1,如下所示:
因此我們要避免編寫無限循環,務必對每個while循環進行測試,確保它按預期的那樣結束。
本節練習:有家電影院根據觀眾的年齡收取不同的票價,不到3歲的觀眾免費,3-12歲的觀眾10元;超過12歲的觀眾收費15元。請編寫一個循環,在其中輸入用戶的年齡,並指出其票價。