【Python】レッスン2-06:繰り返し処理(while文)を理解しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:繰り返し処理(while文)

この記事の練習問題で使用する知識:
入力と出力の基本コメントの書き方変数の宣言と代入基本データ型と算術演算子文字列の操作、フォーマット文字列比較演算子と論理演算子条件分岐(if-else文)条件分岐(elif文)条件分岐(match文)繰り返し処理(for文)繰り返し処理(while文)繰り返しの制御、エラーメッセージ例外処理の基礎

<<前の問題 問題集Top 次の問題>>

Pythonの「繰り返し処理(while文)」とは

この章ではPythonにおける「繰り返し処理(while文)」の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。



プログラミングにおいて繰り返し処理は、同じ動作を何度も実行する際に非常に便利です。

Pythonでは繰り返し処理を行うために「for文」や「while文」がありますが、この記事では「while文」に焦点を当てて解説します。

while文は指定した条件が満たされている間は処理を繰り返すという特徴を持っています。

Pythonにおけるwhile文の基本

while文は条件がTrueである限りループを繰り返し、条件がFalseになると終了します。

for文は特定の範囲やコレクションを使って繰り返しを行いますが、while文は条件に基づいて処理を繰り返すため、条件次第では無限にループすることもあります。

while文の基本的な構文は次のようになります。

while 条件:
    実行する処理

条件が満たされている限り、インデントされた処理が繰り返し実行されます。

インデントは字下げともいい、コードの行頭に半角スペースを4つ加えることを言います。

while文の使用例

以下は、0から4までの数値を出力するシンプルなwhile文の例です。

count = 0
while count < 5:
    print(count)
    count += 1

このコードでは変数countが5未満の間countの値を出力します。

最初にcountは0から始まり、ループごとに1ずつ増えていきます。条件count < 5が満たされなくなる(つまりcountが5になる)とループは終了します。

実行結果は以下の通りです。

0
1
2
3
4

breakとcontinueについて

繰り返し処理の中で、特定の条件でループを終了させたい場合にはbreakを使います。

また、現在のループをスキップして次のループに進みたい場合にはcontinueを使用します。

これらの詳細については次の記事で解説しますが、繰り返し処理を柔軟に制御するための重要な要素です。

for文との比較

while文とfor文はどちらも繰り返し処理を行うための構文ですが、それぞれ適した用途が異なります。

for文はリストや範囲などのコレクションに対して繰り返し処理を行うのに適しており、事前に繰り返し回数が決まっている場合に便利です。

一方while文は特定の条件に基づいて繰り返し処理を行うため、回数が事前に決まっていない状況や、特定の条件が満たされるまでループを続ける必要がある場合に向いています。

例えばユーザーの入力が正しいかどうかを確認する際などにwhile文がよく使われます。

まとめ

while文はfor文と違って繰り返し回数が事前に決まっていない場合に有効なツールです。

さらにbreakcontinueを組み合わせることでより柔軟なループ制御が可能になります。

while文を理解することで、より複雑な繰り返し処理を効率よく行えるようになるでしょう。ぜひ、実際にコードを書いて試してみてください!




Python練習問題2-6:ユーザー入力を使って繰り返しを制御するプログラムを作ろう

while文を使ってユーザーからの入力を繰り返し表示するプログラムを作成してください。ユーザーが「終了」と入力するまで、入力された内容を表示するプログラムです。

ユーザーが「終了」と入力したら、ループを終了しプログラムを停止させまs。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • while文を使用して、ユーザーの入力が「終了」でない限りループを繰り返すこと。
  • ユーザーからの入力を受け取り、その内容を画面に表示すること。
  • 入力が「終了」であればループを抜け、プログラム終了のメッセージを表示すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

何か入力してください(終了で停止): こんにちは
あなたの入力: こんにちは
何か入力してください(終了で停止): 終了
プログラムを終了します

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。

1.ユーザーの入力を初期化
2.while文の定義
 2-1. ユーザーが「終了」と入力するまでループを繰り返す
  2-1-1. ユーザーからの入力を取得
  2-1-2. 入力が「終了」でない場合、if文を使ってその入力内容を表示
3.whileループが終了した後、プログラム終了メッセージを表示

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

# 繰り返し処理(while文)を使ってユーザーからの入力を繰り返し処理するコード

# ユーザーの入力を初期化
"""【穴埋め問題1】
ここにユーザーの入力を初期化するコードを書いてください。
"""

# while文でユーザーが「終了」と入力するまで繰り返す
"""【穴埋め問題2】
ここにwhile文を書いて、ユーザーが「終了」と入力するまでループを繰り返すコードを書いてください。
"""

    # ユーザーに文字列の入力を求める
    """【穴埋め問題3】
    ここにユーザーに文字列の入力を求め、変数に格納するコードを書いてください。
    """

    # 入力が「終了」でない場合はその入力内容を表示
    """【穴埋め問題4】
    ここにif文を使って「終了」でない場合の処理を記述してください。表示する内容を書いてください。
    """

# 「終了」と入力されたらループを抜けて終了メッセージを表示
"""【穴埋め問題5】
ここにプログラム終了時のメッセージを表示するコードを書いてください。
"""

 

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。



解答例と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

# 繰り返し処理(while文)を使ってユーザーからの入力を繰り返し処理するコード

# ユーザーの入力を初期化
user_input = ""

# while文でユーザーが「終了」と入力するまで繰り返す
while user_input != "終了":
    # ユーザーに文字列の入力を求める
    user_input = input("何か入力してください(終了で停止): ")
    
    # 入力が「終了」でない場合はその入力内容を表示
    if user_input != "終了":
        print(f"あなたの入力: {user_input}")

# 「終了」と入力されたらループを抜けて終了メッセージを表示
print("プログラムを終了します")

正解コードの解説

このコードはwhile文を使ってユーザーからの入力を繰り返し処理するプログラムです。

以下にブロックごとに分けて解説します。

ユーザー入力の初期化

最初にuser_inputという変数を空文字(””)で初期化します。これは、後でユーザーからの入力を受け取るための変数です。

user_input = ""

while文の使用

while文はuser_input != "終了"という条件が満たされている限り繰り返し処理を行います。

ユーザーが「終了」と入力するまで、ループが続きます。

ユーザーからの入力の取得

input()関数を使ってユーザーから文字列を入力させ、その内容をuser_inputに代入します。

この処理は毎回ループ内で実行されます。

user_input = input("何か入力してください(終了で停止): ")

if文による入力内容の表示

if文を使って、ユーザーの入力が「終了」でない場合に入力された内容を画面に表示します。

これにより繰り返し処理の度に入力内容が出力されます。

if user_input != "終了":
    print(f"あなたの入力: {user_input}")

ループの終了とメッセージの表示

ユーザーが「終了」と入力した場合、while文の条件が満たされなくなり、ループが終了します。

その後、プログラム終了のメッセージが表示されます。

print("プログラムを終了します")

まとめ

このコードではwhile文を使ってユーザーの入力が特定の条件を満たすまで繰り返し処理を行う方法を学びました。

while文は条件によって繰り返しを制御するための基本的な構文で、ループを使う場面では非常に役立ちますので、確実にマスターしましょう。

<<前の問題 問題集Top 次の問題>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    Python記事トップへ戻る
    トップページへ戻る