【6日でできるPython入門】繰り返し while文

 Pythonの繰り返し処理には、「for文」と「while文」の2つがあります。for文はデータの集まりを順番に処理するときに便利ですが、while文は「ある条件が満たされている間だけ繰り返す」という、より柔軟な繰り返しを実現できます。
 while文は、繰り返し回数が事前に決まっていないケースや、ユーザーからの入力や状態の変化で終了するような処理で大活躍します。ここでは、while文の書き方や使い方を、実用的な例を交えて解説します。

1.while文の基本構文と使い方

1.1. while文の基本構文

while文の基本形は次の通りです。

while 条件式:
    繰り返し実行する処理

条件式がTrue(真)の間、ブロック内の処理が繰り返し実行されます。

サンプル:カウントダウンを表示する

ファイル名: lesson16-1.py

# 10から1までカウントダウンして、最後に「発射!」と表示する
count = 10
while count > 0:
    print(f"{count}秒前…")
    count -= 1
print("発射!")

実行結果

10秒前…
9秒前…
8秒前…
7秒前…
6秒前…
5秒前…
4秒前…
3秒前…
2秒前…
1秒前…
発射!

解説

  • count = 10 で変数を初期化します。
  • while count > 0: でcountが0より大きい間ループします。
  • count -= 1 で毎回countの値を1減らしています。
  • ループが終わると「発射!」と表示します。

1.2. while文でリストの要素を順に処理

for文でも書けますが、while文でもリストの全要素を処理できます。

ファイル名: lesson16-2.py

# 生徒の名前リストを順番に表示する
students = ["山田", "田中", "佐藤", "高橋"]
index = 0
while index < len(students):
    print(f"{students[index]}さんが出席しました")
    index += 1

実行結果

山田さんが出席しました
田中さんが出席しました
佐藤さんが出席しました
高橋さんが出席しました

解説

  • index = 0 でインデックスを初期化。
  • while index < len(students): でリストの範囲内だけ繰り返します。
  • students[index] で要素を取り出し、index += 1 で次に進めます。

2.条件が変化するまで繰り返す

while文は、ユーザーの入力やプログラムの状態によって、繰り返しの終了をコントロールできるのが最大の特徴です。

2.1. ユーザーが「終了」と入力するまで繰り返す

ファイル名: lesson16-3.py

# ユーザーが「やめる」と入力するまで好きな果物を答えてもらう
while True:
    fruit = input("好きな果物を入力してください(やめるで終了)> ")
    if fruit == "やめる":
        print("入力を終了します。")
        break
    print(f"あなたの好きな果物は{fruit}ですね!")

実行結果

好きな果物を入力してください(やめるで終了)> みかん
あなたの好きな果物はみかんですね!
好きな果物を入力してください(やめるで終了)> りんご
あなたの好きな果物はりんごですね!
好きな果物を入力してください(やめるで終了)> やめる
入力を終了します。

解説

  • while True: で無限ループを作成。
  • if fruit == "やめる": で終了条件をチェックし、breakでループを抜けます。
  • それ以外は、入力値に応じてメッセージを表示します。

2.2. 不正な入力を繰り返しチェックする

ファイル名: lesson16-4.py

# 0より大きい数字が入力されるまで繰り返し、正しい入力があれば合格と表示
while True:
    num = int(input("正の整数を入力してください > "))
    if num > 0:
        print(f"{num}は正しい入力です。合格!")
        break
    else:
        print("0以下の数字は無効です。再入力してください。")

実行結果

正の整数を入力してください > -3
0以下の数字は無効です。再入力してください。
正の整数を入力してください > 0
0以下の数字は無効です。再入力してください。
正の整数を入力してください > 5
5は正しい入力です。合格!

解説

  • 入力値が正の整数でなければ、エラーメッセージを表示して再入力を促します。
  • 正しい値なら、合格メッセージを表示してループを終了します。

3.while文でよく使う構文・テクニックまとめ

構文例主な用途説明
while 条件式:条件がTrueの間、繰り返す基本のwhile文構文
while True: ... break明示的な終了条件で無限ループを制御ユーザー入力などでbreakで終了
変数の更新ループ内で変数を変化させて繰り返しを制御カウンタやインデックスの増減など
入力チェック入力値が正しいか何度も再確認したい場合など正常な値が得られるまでループを継続

まとめ

  • while文は「条件が成り立つ限り繰り返す」という特徴を持ちます。
  • for文で書けることも多いですが、繰り返し回数が決まらない場合やユーザー入力・状態変化による繰り返しはwhile文が本領発揮します。
  • 変数の更新やbreak文の使い方などをマスターし、柔軟なループ処理を書けるようにしましょう。