Python - While Loops: 一個初學者的指南
你好,有抱負的Python程序员!今天,我們將深入探討while迴圈的美妙世界。作為你友善的鄰居電腦老師,我將逐步引導你完成這次旅程。所以,拿起你最喜歡的飲料,放鬆身心,讓我們一起踏上這個刺激的冒險吧!
什麼是While迴圈?
在我們深入細節之前,先從基礎開始。想象一下,你正在玩一個遊戲,需要不斷擲骰子直到得到六。你不會事先知道需要擲多少次,對嗎?這就是while迴圈的用處所在!
在Python中,while迴圈允許你重複執行一塊代碼,只要某個條件為真。這就像告訴Python,“嘿,繼續做這個,直到我告訴你停下來!”
基本語法
以下是while迴圈最簡單的形式:
while condition:
# 要被執行的代碼
很直觀,不是嗎?讓我們來解釋一下:
-
while
關鍵字告訴Python我們要開始一個while迴圈。 -
condition
是一個布爾表達式,用來決定迴圈是否應繼續或停止。 - 缩進的代碼塊會在條件為真的情況下重複執行。
一個簡單的例子
讓我們通過我們的擲骰子遊戲來實踐這一點:
import random
roll = 0
while roll != 6:
roll = random.randint(1, 6)
print(f"你擲出了{roll}")
print("恭喜!你擲出了6!")
在這個例子中:
- 我們導入
random
模塊以生成隨機數字。 - 我們將
roll
初始化為0。 - while迴圈會繼續,直到
roll
等於6。 - 在迴圈內部,我們生成一個1到6之間的隨機數字並打印它。
- 一旦我們擲出6,迴圈結束,並打印一條祝賀信息。
多次運行此代碼,你會發現每次可能需要不同的擲骰次數。這就是while迴圈的美麗之處 - 它們非常適合於那些你不知道需要多少次迭代的情況。
Python無限While迴圈
現在,讓我們談談一些稍微危險但令人興奮的事情 - 無限迴圈。這就像打開一包你最喜歡的薯片;一旦開始,就很難停下來!
無限迴圈是一個永遠不會結束的while迴圈,因為它的條件永遠為真。雖然這聽起來像是一個災難的配方,但實際上在編程中有一些合理的用途。
以下是一個簡單的例子:
while True:
print("這是一個無限迴圈!")
這個迴圈將永遠打印“這是一個無限迴圈!”,直到你手動停止程序(通常通過按Ctrl+C)。
一個更實用的例子
讓我們創建一個簡單的計算器,直到用戶決定退出為止:
while True:
print("\n簡易計算器")
print("1. 加法")
print("2. 減法")
print("3. 退出")
choice = input("輸入你的選擇 (1-3): ")
if choice == '3':
print("感謝使用計算器。再見!")
break
elif choice in ('1', '2'):
num1 = float(input("輸入第一個數字: "))
num2 = float(input("輸入第二個數字: "))
if choice == '1':
print(f"結果: {num1 + num2}")
else:
print(f"結果: {num1 - num2}")
else:
print("無效輸入。請再試一次。")
在這個例子中:
- 我們使用無限迴圈讓計算器運行。
- 用戶可以選擇加法,減法或退出。
- 如果用戶選擇退出(選項3),我們使用
break
語句退出迴圈。 - 對於選項1和2,我們執行計算並顯示結果。
- 如果用戶輸入無效選項,我們顯示錯誤消息並繼續迴圈。
這是一個無限迴圈可以有用於創建互動式程序的絕佳例子!
Python while-else迴圈
現在,讓我們探索Python的while迴圈的獨特功能 - else子句。這就像在迴圈正常完成時有一個備用計劃。
語法看起來像這樣:
while condition:
# 當條件為真時要執行的代碼
else:
# 當迴圈條件變為假的時候要執行的代碼
else區塊在while迴圈條件變為假時執行。但是,如果迴圈被break
語句終止,則會跳過else區塊。
例:尋找一個數字
讓我們使用while-else迴圈在列表中搜索數字:
numbers = [1, 3, 5, 7, 9, 11, 13, 15]
target = 10
index = 0
while index < len(numbers):
if numbers[index] == target:
print(f"找到{target}在索引{index}")
break
index += 1
else:
print(f"{target}在列表中未找到")
在這個例子中:
- 我們遍歷數字列表。
- 如果我們找到目標,我們打印其位置並 break 迴圈。
- 如果我們沒有找到目標且迴圈正常完成,則會執行else區塊。
這在你想在迴圈完成時沒有找到要找的東西才執行動作時特別有用。
單行語句套件
有時,你的while迴圈可能非常簡單,只需要一行代碼。在這些情況下,Python允許你一次性寫入。這就像編程中的微波爐餐 - 快速且方便!
以下是語法:
while condition: 語句
讓我們看看一個例子:
count = 5
while count > 0: print(count); count -= 1
這個緊湊的迴圈將打印從5到1的數字。
但是,要小心:雖然單行迴圈很方便,但如果過度使用,它也可能使你的代碼變得難以閱讀。在閱讀和學習的過程中,通常最好優先考慮可讀性而不是簡潔性。
結論
恭喜!你剛剛完成了Python中while迴圈的快速之旅。從基本迴圈到無限迴圈,while-else構造甚至單行迴圈,你现在已經掌握了這個基本編程概念的重要基礎。
記住,練習成就完美。嘗試創建自己的while迴圈,實驗不同的條件,看看你能建造什麼。誰知道?你的下一個項目可能成為編程世界中的下一件大事!
編程愉快,並願你的迴圈總是在你想要的時候終止!
方法 | 描述 | 示例 |
---|---|---|
基本while迴圈 | 當條件為真時執行一塊代碼 | while count > 0: print(count); count -= 1 |
無限while迴圈 | 無限持續直到手動停止或遇到break條件 | while True: print("這是無限的!") |
while-else迴圈 | 當while條件變為假時執行else區塊 | while condition: ... else: ... |
單行while迴圈 | 當條件為真時執行單行語句 | while count > 0: print(count); count -= 1 |
break語句 | 提前退出迴圈 | while True: if condition: break |
continue語句 | 跳過當前迭代的剩餘部分並移至下一個 | while True: if condition: continue |
Credits: Image by storyset