このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】while文を使ったループ

while文を使ったループ

 Pythonのwhile文は、条件式がTrueである限り、処理を繰り返すための制御構造です。for文がイテラブルなオブジェクトの各要素を順次処理するのに対して、while文は指定した条件が成立している間、ループ内の文を実行し続けます。特に、反復回数が事前に決まっていない場合や、ユーザ入力に応じてループを終了する必要がある場合に非常に有用です。
 ここでは、while文の基本的な構文、処理の流れ、そして実践例として「お気に入り映画の登録」を行うプログラムを用いて解説します。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.while文の基本構文と処理の流れ

1.1. 基本構文

while文は、次の基本構文で記述します。

while 条件式:
    文1
    文2
    # ...

解説

  • 条件式: ループを継続するかどうかを決定するための式です。条件式がTrueである限り、インデントされたブロック内の文が実行されます。
  • コロン (:) とインデント: 条件式の末尾にコロンを付け、次の行からインデントしてループの本体を記述します。インデントは、通常空白4個分を使用します。
  • ループの終了条件は、条件式がFalseになることです。条件式がFalseになった時点でwhile文は終了し、以降の処理に移ります。

1.2. 処理の流れ

while文は、以下の手順で実行されます。

ステップ説明
1. 条件式の評価条件式がTrueかFalseかを評価し、Trueなら次のステップに進む。
2. ブロック内の文の実行インデントされた複数の文が順に実行される。
3. 条件式の再評価ブロックの最後まで実行されたら、再び条件式が評価され、Trueなら繰り返す。
4. ループの終了条件式がFalseになった時点でループを終了し、while文の外側の文が実行される。

2.実践例:お気に入り映画の登録プログラム

2.1. プログラム概要

 ここでは、ユーザにお気に入りの映画のタイトルを3つ入力してもらい、それらをリストに登録して最後に表示するプログラムを作成します。ユーザが入力するたびにリストに追加し、リストの要素数が3になるとループを終了します。

2.2. サンプルプログラム

以下は、映画のタイトルを登録して表示するプログラムの例です。

# 空のリストを作成してお気に入り映画を格納する変数 movies に代入
movies = []

# movies の要素数が3未満の間、ユーザから映画タイトルを入力してリストに追加する
while len(movies) < 3:
    movie = input("Enter your favorite movie: ")
    movies.append(movie)

# ループが終了したら、登録された映画のリストを表示する
print("Your favorite movies are:", movies)

解説

  • 初期化: movies = [] により、映画のタイトルを格納するための空のリストを作成します。
  • 条件式: while len(movies) < 3: は、リスト movies の要素数が3未満である限りループを継続する条件です。
  • 入力と追加: ループ内で input("Enter your favorite movie: ") により、ユーザから映画タイトルを入力させ、その値を変数 movie に格納します。次に、movies.append(movie) でその映画タイトルをリストに追加します。
  • ループ終了: リストの要素数が3になると条件式がFalseになり、while文が終了します。
  • 出力: 最後に、print("Your favorite movies are:", movies) により、登録された映画のリストが表示されます。

2.3. 出力例

プログラムを実行して、例えば以下のように入力すると

Enter your favorite movie:  spider man
Enter your favorite movie:  superman
Enter your favorite movie:  indiana jones
Your favorite movies are: ['spider man', 'superman', 'indiana jones']

出力は次のようになります。

Your favorite movies are: ['spider man', 'superman', 'indiana jones']

まとめ

while文は、条件がTrueの間、繰り返し処理を実行するための強力なツールです。

  • 基本構文: while 条件式: として、インデントされたブロック内の文が条件式がTrueの場合に実行されます。
  • 処理の流れ: ループの各反復ごとに条件式が再評価され、条件がFalseになった時点でループが終了します。
  • 実践例: ユーザからお気に入り映画を3つ登録するプログラムでは、input関数とappendメソッドを用いて、リストの要素数が一定数に達するまで処理を繰り返し、最後に登録内容を出力します。

 これらの概念を理解し、適切に活用することで、while文を用いた柔軟な繰り返し処理を実装できるようになり、ユーザ入力に応じた動的なプログラムの構築が可能となります。