Python Tutorials

PythonのWhileループ完全マスターガイド

Spread the love

Pythonにおけるwhileループは、プログラムの流れを制御するための強力なツールです。定義済みのシーケンスを反復処理するforループとは異なり、whileループは指定された条件が真である限り実行を続けます。これは、反復回数が事前に不明な場合に特に役立ちます。

目次

基本的なWhileループ構造

whileループの基本的な構文は簡単です。


while condition:
    # 繰り返し実行されるコード
    # ...

conditionは、各反復の前に評価されます。Trueと評価された場合、インデントされたコードブロックが実行されます。Falseと評価された場合、ループは終了し、プログラムはループの後のステートメントから続行されます。

ループ実行の制御:breakcontinue

breakcontinueステートメントは、ループ動作を細かく制御します。

  • break:条件に関係なく、ループを直ちに終了します。
  • continue:現在の反復の残りの部分をスキップし、次の反復に進みます。

count = 0
while count < 5:
    count += 1
    if count == 3:
        continue  # 3の出力はスキップ
    print(count)

while count < 10:
    count += 1
    if count == 7:
        break  # countが7のときループを終了
    print(count)

while-else構文

Pythonのwhileループは、オプションのelseブロックを独自にサポートしています。このelseブロックは、ループが*自然に*完了した場合、つまりループ条件がFalseになった場合にのみ実行されます。重要なのは、breakステートメントを使用してループが終了した場合、elseブロックは実行されないということです。これは、中断なしにループが終了した場合にのみアクションを実行する必要がある状況を処理するための明確な方法を提供します。


count = 0
while count < 5:
    print(count)
    count += 1
else:
    print("ループは正常に完了しました!")


count = 0
while count < 5:
    if count == 3:
        break
    print(count)
    count += 1
else:
    print("ループは正常に完了しませんでした!") # これは出力されない

実践例

whileループの実用的な使用方法を示すいくつかの例を以下に示します。

例1:ユーザー入力の検証


while True:
    try:
        age = int(input("年齢を入力してください:"))
        if age >= 0:
            break  # 有効な年齢が入力された場合、ループを終了
        else:
            print("年齢は負の数にはできません。")
    except ValueError:
        print("無効な入力です。数値を入力してください。")

print(f"あなたの年齢は:{age}")

例2:カウントダウンのシミュレーション


import time

countdown = 10
while countdown > 0:
    print(countdown)
    time.sleep(1)  # 1秒間一時停止
    countdown -= 1
print("発射!")

無限ループの回避

whileループにおけるよくある落とし穴は、無限ループ、つまり決して終了しないループを作成することです。これは通常、ループ条件がFalseになることがない場合に発生します。ループ条件が最終的にFalseと評価されることを常に確認してください。ループのロジックを注意深く調べ、条件に影響を与える変数がループ本体内で適切に更新されていることを確認してください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です