iT邦幫忙

2024 iThome 鐵人賽

DAY 18
0
AI/ ML & Data

From Python Beginner To AI Engineer系列 第 19

如何直接跳出迴圈?

  • 分享至 

  • xImage
  •  

break

break 可以完全離開整個迴圈,例如從 3 開始 7 個 7 個一數,數到何時會超過 50 呢?

>>> for i in range(3, 100, 7):
>>>     if i > 50:
>>>         break
>>>     print(i)
>>> print("完成", i)
3
10
17
24
31
38
45
完成 52

一開始並不知道加到多少會停下來,因次設定一個迴圈讓他跑到 100,在途中檢查 i 的值,若是 i 大於 50 就離開迴圈,來到最後一行輸出 完成 52

額外挑戰:試試看如何用 while 迴圈來改寫以上程式?

刻意製造無限迴圈

有些時候會刻意去製造一個無限迴圈:

while True:
    pass

單純擺一個布林值 Truewhile 後面時,就能製造一個無限迴圈。將無限迴圈與 break 搭配是很常見的手法,例如寫一個簡單的購物車:

>>> apple = 0
>>> banana = 0
>>> while True:
>>>     n = int(input("請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >"))
>>>     if n == 1:
>>>         print("把一顆蘋果放進購物車")
>>>         apple += 1
>>>     elif n == 2:
>>>         print("把一根香蕉放進購物車")
>>>         banana += 1
>>>     else:
>>>         print("結算!")
>>>         break
>>>
>>> print(apple, "顆蘋果")
>>> print(banana, "根香蕉")
請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >1
把一顆蘋果放進購物車
請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >2
把一根香蕉放進購物車
請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >1
把一顆蘋果放進購物車
請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >2
把一根香蕉放進購物車
請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >2
把一根香蕉放進購物車
請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >3
結算!
2 顆蘋果
3 根香蕉

雖然也可以把 while 的條件設定為 n != 3,但是這樣的寫法會讓邏輯的呈現更為井然有序。

自我練習

來寫一個猜數字遊戲吧!先手動設定一個變數 r 為你的祕密數字,接著不斷從使用者那邊接收輸入 n,如果 nr 大,就輸出「太大了!」;如果 nr 小,就輸出「太小了!」。最後使用者猜中數字時,使用 break 離開迴圈。

完整的程式碼放在此 Colab 裡面供各位參考。


上一篇
什麼是布林值?
下一篇
能不能隨機產生一個數字?
系列文
From Python Beginner To AI Engineer31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言