【Python】レッスン2-6:while文による繰り返し処理を理解しよう
一つ前の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基礎習得者にお勧めの道5選(実務or副業)
while文の基礎|条件で回り続ける仕組みと使い分けの考え方
while
文は、条件が成り立つあいだ処理を繰り返すための基本構文です。
あらかじめ回数が決まっていない処理――たとえばユーザー入力が「終了」となるまで続ける、条件を満たすまで再入力を促す、一定の閾値に達するまで計算を続ける――といった場面で力を発揮します。
本文ではwhile
文の基本構文、条件の設計、入力に応じてループを継続・終了する書き方、つまずきやすいポイントまで順に解説します。
まずは概要を押さえ、サンプルを動かしながら次のセクションへ進みましょう。
while文の書き方|基本構文と条件付きループの使い方・例
while文は条件がTrue
である限りループを繰り返し、条件がFalse
になると終了します。
for文は特定の範囲やコレクションを使って繰り返しを行いますが、while文は条件に基づいて処理を繰り返すため、条件次第では無限にループし続けることもあります。
while文の基本的な構文は次のようになります。
while 条件: # この条件が満たされている間... 実行する処理 # この処理を実行する
条件が満たされている限り、インデントされた処理が繰り返し実行されます。
以下は、0から4までの数値を出力するシンプルなwhile文の例です。
count = 0 # 変数countを定義して0を代入 while count < 5: # 変数countの値が5よりも小さいならば print(count) # 変数countの値を出力する count += 1 # 変数countに1を加算し、2行目に戻る print("繰り返し処理終了") # ここはwhile文の外
このコードでは変数count
が5未満の間count
の値を出力します。
最初にcount
は0から始まり、ループごとに1ずつ増えていきます。条件count < 5
が満たされなくなる(つまりcount
が5になる)とループは終了します。
実行結果は以下の通りです。
0 1 2 3 4 繰り返し処理終了
whileとforの使い分け|回数未定はwhile、回数既定はfor
while文とfor文はどちらも繰り返し処理を行うための構文ですが、それぞれ適した用途が異なります。
for文はリストや範囲などのコレクションに対して繰り返し処理を行うのに適しており、事前に繰り返し回数が決まっている場合に便利です。
一方while文は特定の条件に基づいて繰り返し処理を行うため、回数が事前に決まっていない状況や、特定の条件が満たされるまでループを続ける必要がある場合に向いています。
例えばユーザーの入力が正しいかどうかを確認する際などにwhile文がよく使われます。
まとめ|条件付きループの設計と使い分け
ここまででwhile文の基本構文と具体的な使用例、そしてfor文との違いを確認しました。
while文は「条件が成り立つあいだ」処理を繰り返す仕組みで、回数が決まっていない場面に向いていることを理解できたはずです。
この学習により、ユーザー入力に応じて処理を続けるメニューや、条件を満たすまで繰り返すチェックなど、条件付きループを自分で設計して実装できるようになりました。
用途に応じてforとwhileを使い分ける判断も、ひとつの基準を持てたはずです。
あとは、小さな問題でもよいので実際に書いて動かし、条件の置き方や終了の考え方に慣れていきましょう。
反復して手を動かすほど、コードは確実に読みやすく、迷いの少ないものになっていきます。
- サイト改善アンケート|ご意見をお聞かせください(1分で終わります)
-
本サイトでは、みなさまの学習をよりサポートできるサービスを目指しております。
そのため、みなさまの「プログラミングを学習する理由」などをアンケート形式でお伺いしています。1分だけ、ご協力いただけますと幸いです。
【Python】サイト改善アンケート
練習問題:while文を使ってみよう
この記事で学習した「while文」を復習する練習問題に挑戦しましょう。
問題|ユーザー入力を使って繰り返しを制御しよう
while文を使ってユーザーからの入力を繰り返し表示するプログラムを作成してください。ユーザーが「終了」と入力するまで、入力された内容を表示するプログラムです。
ユーザーが「終了」と入力したら、ループを終了しプログラムを停止させます。
以下の要件に従ってコードを完成させてください。
- while文を使用して、ユーザーの入力が「終了」でない限りループを繰り返すこと。
- ユーザーからの入力を受け取り、その内容を画面に表示すること。
- 入力が「終了」であればループを抜け、プログラム終了のメッセージを表示すること。
ただし、以下のような実行結果となるコードを書くこと。
何か入力してください(終了で停止): こんにちは あなたの入力: こんにちは 何か入力してください(終了で停止): あいうえお あなたの入力: あいうえお 何か入力してください(終了で停止): 終了 プログラムを終了します
ヒント|難しいと感じる人だけ見よう
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
1.ユーザーの入力を初期化
2.while文の定義
3.whileループが終了した後、プログラム終了メッセージを表示
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。(クリックして開く)
# ユーザーの入力を初期化 user_input = "" # while文でユーザーが「終了」と入力するまで繰り返す '''(穴埋め)''' user_input != "終了": # ユーザーに文字列の入力を求める user_input = '''(穴埋め)'''("何か入力してください(終了で停止): ") # 入力が「終了」でない場合はその入力内容を表示 '''(穴埋め)入力が「終了」でない場合に、入力内容を表示する処理を書く''' # 「終了」と入力されたらループを抜けて終了メッセージを表示 print("プログラムを終了します")
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
解答例|終了で終わる入力エコープログラム
例えば以下のようなプログラムが考えられます。
- 正解コード
-
# ユーザーの入力を初期化 user_input = "" # while文でユーザーが「終了」と入力するまで繰り返す while user_input != "終了": # ユーザーに文字列の入力を求める user_input = input("何か入力してください(終了で停止): ") # 入力が「終了」でない場合はその入力内容を表示 if user_input != "終了": print(f"あなたの入力: {user_input}") # 「終了」と入力されたらループを抜けて終了メッセージを表示 print("プログラムを終了します")
while文による繰り返し処理の疑問解消|FAQと用語のまとめ
初心者がつまずきやすいポイントをFAQとしてまとめ、またよく使う専門用語をわかりやすく整理しました。
理解を深めたいときや、ふと疑問に感じたときに役立ててください。
FAQ|while文による繰り返し処理に関するよくある質問
- Q1. while文を使ったカウントアップ処理の書き方は?
-
変数を初期化し、条件がTrueの間だけ増加させていきます。例:
i = 0; while i < 5: print(i); i += 1
。
- Q2. while文でユーザー入力をループで受け取る方法は?
-
input()
と条件判定を組み合わせて、ユーザーが特定の文字を入力するまで繰り返す形式が一般的です。
- Q3. while文の条件がFalseのとき、何も実行されませんか?
-
はい。条件が最初からFalseの場合、ループ内部の処理は一度も実行されません。
Python用語集|while文による繰り返し処理に関する用語一覧
今回の記事で出てきた用語・関数などを一覧で紹介します。
このサイトに出てくる 全てのPython用語をまとめた用語集 も活用してください。