Python while ループ

Python3 循环语句Python3 ループ文


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("ループ終了")

実行結果の予想:

0
1
2
3
4
循环结束

コード解説:

  1. count < 5 の間はループを続けます。
  2. ループごとに count が 1 ずつ増加します。
  3. 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("おめでとう、正解です!")

実行結果の予想:

请输入数字 (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

実行結果の予想:

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("この行は表示されません")

実行結果の予想:

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 を組み合わせることで、複雑な制御フローを実現できます。

実行結果の予想:

=== 菜单 ===
1. 查看余额
2. 存款
3. 取款
4. 退出
请选择: 1
余额: 1000元

=== 菜单 ===
1. 查看余额
2. 存款
3. 取款
4. 退出
请选择: 

Python3 循环语句Python3 ループ文

その他の拡張