Python while ループ
whilePython の条件付きループ文であり、条件が True である限り、ループ本体を実行し続けます。
とfor異なり、whileループは、ループ回数が不明で、条件に応じて終了する必要があるシナリオに適しています。
単語の意味: while「〜のとき」という意味で、条件が真の間は実行を続けることを表します。
基本構文とパラメータ
構文形式
while 条件:
# 循环体(必须缩进)
语句1
语句2
...
else:
# 可选,当循环“正常结束”时执行
语句1
语句2
...
構文の説明
- 条件: 各ループの開始前に判定される条件式。
- 実行ロジック: True の場合、ループ本体を実行し、その後条件を再判定します。
- 終了条件: 条件が False の場合、ループを終了します。
else 句
- オプション: for と同様に、while にも else を付けることができます。
- 実行タイミング: 条件が False になったときに実行されます(正常終了)。

例
例1:基本の使い方
例
# 基本的な while ループ
count = 0
while count < 5:
print(count)
count += 1
print("ループ終了")
count = 0
while count < 5:
print(count)
count += 1
print("ループ終了")
実行結果の予想:
0 1 2 3 4 循环结束
コード解説:
- count < 5 の間はループを続けます。
- ループごとに count が 1 ずつ増加します。
- count = 5 のとき、条件が False となり、ループを終了します。
例2:ユーザー入力の検証
例
# ユーザー入力の検証をシミュレート
# 注意:実際に実行すると input() はユーザー入力を待ちます
# 簡単な例:数字当て
secret = 7
guess = 0
while guess != secret:
guess = int(input("数字を入力してください (7): "))
if guess < secret:
print("小さすぎます")
elif guess > secret:
print("大きすぎます")
print("おめでとう、正解です!")
# 注意:実際に実行すると input() はユーザー入力を待ちます
# 簡単な例:数字当て
secret = 7
guess = 0
while guess != secret:
guess = int(input("数字を入力してください (7): "))
if guess < secret:
print("小さすぎます")
elif guess > secret:
print("大きすぎます")
print("おめでとう、正解です!")
実行結果の予想:
请输入数字 (7): 5 太小了 请输入数字 (7): 9 太大了 请输入数字 (7): 7 恭喜,猜对了!
while ループは、条件を満たすまで繰り返す必要がある場面でよく使われます。
例3:階乗の計算
例
# 階乗を計算
n = 5
result = 1
while n > 0:
result *= n
n -= 1
print(f"5! = {result}") # 出力: 5! = 120
# 合計を求める
total = 0
i = 1
while i <= 100:
total += i
i += 1
print(f"1+2+...+100 = {total}") # 出力: 5050
n = 5
result = 1
while n > 0:
result *= n
n -= 1
print(f"5! = {result}") # 出力: 5! = 120
# 合計を求める
total = 0
i = 1
while i <= 100:
total += i
i += 1
print(f"1+2+...+100 = {total}") # 出力: 5050
実行結果の予想:
5! = 120 1+2+...+100 = 5050
while ループを数値計算に使うときは、無限ループを避けるように注意が必要です。
例4:while-else 構造
例
# while-else
count = 0
while count < 3:
print(count)
count += 1
else:
print(ループは正常に終了しました)
print("---")
# break 時は else は実行されない
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print("この行は表示されません")
count = 0
while count < 3:
print(count)
count += 1
else:
print(ループは正常に終了しました)
print("---")
# break 時は else は実行されない
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print("この行は表示されません")
実行結果の予想:
0 1 2 循环正常结束 --- 0 1 2
while-else の else は、break によって終了した場合は実行されません。
例5:無限ループと終了
例
# 無限ループは注意して使う必要があります
# 以下の例では break を使って終了します
# メニューシステムのシミュレーション
while True:
print("\n"=== メニュー ===")
print("1. 残高照会")
print("2. 入金")
print("3. 出金")
print("4. 終了")
choice = input("選択してください: ")
if choice == "1":
print("残高: 1000元")
elif choice == "2":
print("入金機能")
elif choice == "3":
print("出金機能")
elif choice == "4":
print("ご利用ありがとうございます")
break # ループを終了
else:
print("無効な選択")
print("プログラム終了")
# 以下の例では break を使って終了します
# メニューシステムのシミュレーション
while True:
print("\n"=== メニュー ===")
print("1. 残高照会")
print("2. 入金")
print("3. 出金")
print("4. 終了")
choice = input("選択してください: ")
if choice == "1":
print("残高: 1000元")
elif choice == "2":
print("入金機能")
elif choice == "3":
print("出金機能")
elif choice == "4":
print("ご利用ありがとうございます")
break # ループを終了
else:
print("無効な選択")
print("プログラム終了")
無限ループと break を組み合わせることで、複雑な制御フローを実現できます。
実行結果の予想:
=== 菜单 === 1. 查看余额 2. 存款 3. 取款 4. 退出 请选择: 1 余额: 1000元 === 菜单 === 1. 查看余额 2. 存款 3. 取款 4. 退出 请选择:
その他の拡張
Python3 ループ文