Python - While Loops: 一個初學者的指南

你好,有抱負的Python程序员!今天,我們將深入探討while迴圈的美妙世界。作為你友善的鄰居電腦老師,我將逐步引導你完成這次旅程。所以,拿起你最喜歡的飲料,放鬆身心,讓我們一起踏上這個刺激的冒險吧!

Python - While Loops

什麼是While迴圈?

在我們深入細節之前,先從基礎開始。想象一下,你正在玩一個遊戲,需要不斷擲骰子直到得到六。你不會事先知道需要擲多少次,對嗎?這就是while迴圈的用處所在!

在Python中,while迴圈允許你重複執行一塊代碼,只要某個條件為真。這就像告訴Python,“嘿,繼續做這個,直到我告訴你停下來!”

基本語法

以下是while迴圈最簡單的形式:

while condition:
# 要被執行的代碼

很直觀,不是嗎?讓我們來解釋一下:

  1. while關鍵字告訴Python我們要開始一個while迴圈。
  2. condition是一個布爾表達式,用來決定迴圈是否應繼續或停止。
  3. 缩進的代碼塊會在條件為真的情況下重複執行。

一個簡單的例子

讓我們通過我們的擲骰子遊戲來實踐這一點:

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