Python入門|while文でループを柔軟に制御する方法【レッスン2-6】

一つ前のLessonでは繰り返し処理(for文)について学習しました。
今回は繰り返し処理(while文)について見ていきます。
Lesson1:基礎文法編
Lesson2:制御構造編
・Lesson2-1:比較演算子と論理演算子を理解しよう
・Lesson2-2:条件分岐(if-else文)を理解しよう
・Lesson2-3:条件分岐(if-elif-else文)を理解しよう
・Lesson2-4:条件分岐(match文)を理解しよう
・Lesson2-5:繰り返し処理(for文)を理解しよう
・Lesson2-6:繰り返し処理(while文)を理解しよう ◁今回はココ
・Lesson2-7:繰り返しの制御を理解しよう
・Lesson2-8:エラーメッセージを読めるようになろう
・Lesson2-9:例外処理の基礎を理解しよう
・練習問題2-1:ハイアンドロー ゲームを作ろう
・練習問題2-2:数字当てゲームを作ろう
・練習問題2-3:簡単なじゃんけんゲームを作ろう
Lesson3:関数とスコープ編
Lesson4:データ構造編
Lesson5:オブジェクト指向編
次のステップ: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文と違って繰り返し回数が事前に決まっていない場合に有効なツールです。
さらにbreak
やcontinue
を組み合わせることでより柔軟なループ制御が可能になります。
while文を理解することで、より複雑な繰り返し処理を効率よく行えるようになるでしょう。ぜひ、実際にコードを書いて試してみてください!
練習問題:ユーザー入力を使って繰り返しを制御するプログラムを作ろう
while文を使ってユーザーからの入力を繰り返し表示するプログラムを作成してください。ユーザーが「終了」と入力するまで、入力された内容を表示するプログラムです。
ユーザーが「終了」と入力したら、ループを終了しプログラムを停止させます。
問題の詳細条件
以下の要件に従ってコードを完成させてください。
- 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文は条件によって繰り返しを制御するための基本的な構文で、ループを使う場面では非常に役立ちますので、確実にマスターしましょう。
FAQ|while文の使い方と実践ポイント
- Q1. while文を使ったカウントアップ処理の書き方は?
-
変数を初期化し、条件がTrueの間だけ増加させていきます。例:
i = 0; while i < 5: print(i); i += 1
。
- Q2. while文でユーザー入力をループで受け取る方法は?
-
input()
と条件判定を組み合わせて、ユーザーが特定の文字を入力するまで繰り返す形式が一般的です。
- Q3. while文の条件がFalseのとき、何も実行されませんか?
-
はい。条件が最初からFalseの場合、ループ内部の処理は一度も実行されません。
質問用コンタクトフォーム
この記事はAIを用いて書いた記事です。
人間の目による確認も行っていますが、もし間違い等ありましたらご指摘頂けると大変助かります。