Pythonの while 文による繰り返し処理、これから始めようとする初心者向けに分かりやすく解説|Python入門(7)

Python
この記事は約16分で読めます。

ーーーーーーーーーーーーーーーーーーーーー2026年3月6日執筆ーーーーーーーーーーーーーーーーー

Pythonの while 文による繰り返し処理、これから始めようとする初心者向けに分かりやすく解説|Python入門(7)のPodcast

下記のPodcastは、Geminiで作成しました。

はじめに

プログラミングを学び始めたばかりの皆さん、ようこそ!コンピュータが最も得意とすること、それは「同じ作業を文句も言わずに、超高速で繰り返すこと」です。私たちが手作業で行うと数時間かかるような計算やデータの整理も、プログラムを使えば一瞬で終わります。

Pythonでこの「魔法のような繰り返し」を実現する重要な道具の一つが「while 文」です。本記事では、2024年10月にリリースされた最新の Python 3.13 の新機能や、初心者が躓きやすいポイントを徹底的に分かりやすく解説します。


繰り返し処理(ループ)とは?

「ループ」とは、特定の条件が満たされている間、同じ命令を何度も実行し続ける仕組みのことです。

なぜ while 文が必要なのか?

Pythonには「for 文」と「while 文」という2つの代表的なループがあります。

  • for 文: 「5回繰り返す」「リストの要素を全部処理する」など、回数が決まっている時に使います。
  • while 文: 「条件が満たされている間はずっと」「正解が出るまで」など、何回繰り返すか事前には分からない時に真価を発揮します 。

while 文の基本構文:ルールはたったの2つ

while 文の書き方はとてもシンプルです。まずはこの形を覚えましょう 。

Python

while 条件式:
    繰り返したい処理(インデントが必要)

ルール(1) コロン「:」を忘れない

while 条件式 の最後には必ず半角のコロンを付けます。これは「ここから繰り返しのブロックが始まるよ!」という合図です。

ルール(2) インデント(字下げ)

コロンの次の行からは、半角スペース4つ分を空けて書き始めます。この字下げされた部分だけが繰り返しの対象になります 。


基本的な使い方:カウントダウン・プログラム

まずは、変数の値を1ずつ減らしながら表示する簡単なプログラムを見てみましょう 。

Python

count = 5
while count > 0:
    print(f"残り {count} 回です。")
    count -= 1  # count の値を 1 減らす
print("終了しました!")

実行結果:

残り 5 回です。

残り 4 回です。

残り 3 回です。

残り 2 回です。

残り 1 回です。

終了しました!

動作の仕組みをグラフで理解する

このプログラムがどう動いているか、グラフで見るとイメージしやすくなります。

  1. 最初に count は 5 です。
  2. while count > 0(5は0より大きいか?)をチェックし、True なので中身を実行します。
  3. count -= 1 で値が 4 になります。
  4. 再び while の判定に戻ります。
  5. これを繰り返し、count が 0 になった瞬間、条件が False(0は0より大きくない)となり、ループを抜けます 。

最新 Python 3.13 で進化した対話型環境(REPL)

これから学習を始める方に朗報です!最新の Python 3.13 では、プログラムを1行ずつ試せる「対話型シェル(REPL)」が劇的に使いやすくなりました 。

初心者に嬉しい3つの新機能

  1. カラー表示: エラーメッセージが色分けされ、どこが間違っているか一目で分かるようになりました 。
  2. F1キーでヘルプ: while 文の使い方が分からなくなったら、シェル上で F1 キーを押すだけで内蔵ヘルプが開きます 。
  3. 複数行の編集(F2): これまで、一度打ち込んだ while 文を修正するのは大変でした。3.13では F2 キーや上矢印キーで、ループ全体のブロックを呼び出して修正できるようになりました 。

ループをコントロールする:break と continue

ループをより柔軟に操るための「特殊な命令」が2つあります 。

break 文(強制終了)

ある条件になったら、ループを途中で無理やり終わらせます。「宝探しで当たりを見つけたから、もう探さなくていいよ」という時に使います 。

continue 文(スキップ)

「今の回だけ処理を飛ばして、すぐに次の回に進む」命令です。「嫌いな食べ物の時だけ、食べるのをスキップする」イメージです 。


実践:ユーザーの入力をチェックする

while 文の最も便利な使い道の一つが「正しいデータが入力されるまで聞き直す」処理です 。

Python

while True:
    age = input("年齢を入力してください(数字のみ): ")
    if age.isdigit():
        print(f"{age} 歳ですね。確認しました。")
        break  # 正しい入力なのでループを抜ける
    else:
        print("エラー:数字で入力してください。")

このように while True: と書くと、意図的に「無限ループ」を作ることができます。その中で、正しい入力があった時だけ break で外に出る仕組みは、プログラミングの定番パターンです 。


禁断の「無限ループ」と脱出方法

もし、プログラムが終わらなくなってしまったら?初心者が必ず一度は経験するのが「意図しない無限ループ」です 。

例えば、count -= 1 を書き忘れると、条件が一生 True のままになり、パソコンが熱暴走しそうになるかもしれません。

もしもの時の「緊急脱出」

慌てずに、以下のキーを押してください。

  • Windows / Mac: Ctrl キーを押しながら C を押す 。

セイウチ演算子(:=)でコードをスマートに

Python 3.8以降で使えるようになった比較的新しい書き方「セイウチ演算子」についても触れておきましょう。これを使うと、コードをさらに短く書けます 。

Python

# 従来の書き方
command = input("> ")
while command!= "quit":
    print(f"実行: {command}")
    command = input("> ")

# セイウチ演算子を使った書き方
while (command := input("> "))!= "quit":
    print(f"実行: {command}")

(command := input("> ")) の部分は、「入力を受け取り、それを command に代入し、さらにその値をチェックする」という3つの仕事を一度にこなしています。見た目がセイウチの目に似ていることからこう呼ばれています 。


まとめ:for 文とどっちを使う?

最後に、使い分けのガイドラインです。

特徴for 文while 文
得意なこと決まった回数の処理条件に応じた処理
よく使う例リストの集計、5回だけ挨拶正解まで繰り返す、待機
安心感終わりが明確無限ループの注意が必要

基本的には 「for 文で書けるなら for 文で書く」 のが Python の推奨スタイルです。しかし、ユーザー入力の待機や、いつ終わるか分からない複雑な計算には while 文が不可欠です 。

参考資料

  1. More Control Flow Tools — Python 3.13.2 documentation, https://docs.python.org/3/tutorial/controlflow.html
  2. Python while Loop 完全ガイド, https://paiza.jp/works/knowledge/article-python-while-kn
  3. What’s New In Python 3.13, https://docs.python.org/3/whatsnew/3.13.html
  4. Exploring Python 3.13: Features You Should Start Using Now, https://dev.to/code_2/exploring-python-313-features-you-should-start-using-now-cgk
  5. Python 3.13 New Features - GeeksforGeeks, https://www.geeksforgeeks.org/python/python-3-13-new-features/
  6. Python 3.13: Cool New Features for You to Try, https://realpython.com/python313-new-features/
  7. Python while Loop Flowchart and Examples, https://www.scholarhat.com/tutorial/python/python-while-loop
  8. Python - While Loops Tutorial, https://www.tutorialspoint.com/python/python_while_loops.htm
  9. Flowcharts Describing Loops in Python, https://phaustin.github.io/Problem-Solving-with-Python/Loops/Flowcharts-Describing-Loops.html
  10. Python while Loop Syntax and Examples, https://www.programiz.com/python-programming/while-loop
  11. The Python Walrus Operator Guide, https://realpython.com/python-walrus-operator/
  12. Remember the Walrus Operator, https://www.mostlypython.com/remember-the-walrus-operator/
  13. Python := Walrus Operator Usage, https://www.geeksforgeeks.org/python/walrus-operator-in-python-3-8/
  14. The Walrus Operator in Python Explained, https://towardsdatascience.com/the-walrus-operator-in-python-a315e4f84583/
  15. Python 3.13 REPL improvements overview, https://www.lucentinnovation.com/resources/technology-posts/python-new-release-performance-improvement-python-repl
  16. Handy Python REPL modifications for 3.13, https://treyhunner.com/2025/10/handy-python-repl-modifications/
  17. Python 3.13: A Modern REPL Tutorial, https://realpython.com/python313-repl/
  18. Multi-line editing and history in Python 3.13, https://zenn.dev/t3tra/articles/c1590c47787931?locale=en
  19. Python for Beginners Guide: Interactive Interpreter, https://developer.ibm.com/tutorials/python-beginners-guide/
  20. Python while/else loop behavior with break, https://qiita.com/python_academia/items/ce73e7565830123f1c1e
  21. Python入門:繰り返し処理を優しく解説, https://python-engineer.co.jp/chatbot-series27/
  22. Pythonのwhile文をマスターしよう, https://it-biz.online/python/while-2/
  23. Python while文の使い方!for文との違いも解説, https://www.sejuku.net/blog/22463
  24. Python の while 文をマスター!, https://www.kikagaku.co.jp/personal/blog/python-while
  25. Preventing off-by-one errors in loops, https://www.reddit.com/r/learnprogramming/comments/cjgk61/prevent_offbyone_errors/
  26. Pythonのwhile文による繰り返し処理(無限ループなど), https://note.nkmk.me/python-while-usage/
  27. For loop vs While loop: A Comprehensive Guide, https://medium.com/@heyamit10/for-loop-vs-while-loop-a-comprehensive-guide-for-data-scientists-163b0c11eea0
  28. Difference between for loop and while loop in Python, https://www.geeksforgeeks.org/python/difference-between-for-loop-and-while-loop-in-python/
  29. Python for Loop VS while Loop comparison, https://programiz.pro/resources/python-for-vs-while/
  30. Python While Loop piggy bank exercise, https://brainstation.io/learn/python/while-loop
  31. Python While Loop Practical Programs, https://www.scribd.com/document/670719297/Python-Practical-No-3-While-Loop-Programs-1-2
  32. 10 Mini Python Projects to Practice Skills, https://www.interserver.net/tips/kb/10-mini-python-projects-to-practice-core-programming-skills/
  33. How to use while True in Python, https://www.geeksforgeeks.org/python/how-to-use-while-true-in-python/
  34. Python while loop with examples - Analytics Vidhya, https://www.analyticsvidhya.com/blog/2024/01/python-while-loop-with-examples/
  35. Python While Loop Input Validation, https://yasirbhutta.github.io/python/docs/loops-while/solutions/py-ce-wl-001.html
  36. Python 3.13 REPL keyboard mappings, https://www.reddit.com/r/Python/comments/1mplowa/python_313_repl_keyboard_mappingsshortcutsbindings/
  37. Python 3.13 新機能と変更点:初心者が知っておくべきポイント, https://programming-mondai.com/python-3-13/
  38. Python 3.13 improved error messages details, https://docs.python.org/3/whatsnew/3.13.html#improved-error-messages

ーーーーーーーーーーーーーーーーーーーーー2022年6月4日執筆ーーーーーーーーーーーーーーーーー

はじめに

 前回のPython入門(6)では、Pythonの論理演算子とプール型について学びました。

 Python入門の第七弾として、Pythonの while 文による繰り返し処理について紹介します。

  この記事を読むと次の疑問について知ることができます。

 それでは、Pythonの while 文による繰り返し処理をこれから始めようとする初心者向けに分かりやすく解説していきます。

繰り返し処理

 Pythonのプログラムでは、他のプログラム言語と同様に次の3つの処理の組み合わせで実行されます。

  1. 順次処理
    上から順番に下に向かって処理が進みます。
  2. 分岐処理
    条件式により分岐して処理が進みます。
  3. 繰り返し処理(反復処理)
    条件式の条件を満たす間は同じ処理を繰り返したり、一定の回数処理を繰り返します。

 今回は、「3.繰り返し処理(反復処理)」について紹介していきます。

 Pythonでは、この繰り返し処理をする文に、while 文と for 文があります。

 ここでは、while 文について紹介していきます。

while 文による繰り返し処理

 while 文による繰り返し処理は、条件式の条件を満たしている間は while 文以下の処理を繰り返します。

while 条件式 :
    処理1
  処理2
   :
while 文を書く上で注意すること
  1. while 条件式の後に忘れずに「:」を入れること
  2. while 以下の処理部分(while節)は、4文字分字下げすること

 ここで簡単な while 文の例を紹介しましょう。

 以下のGoogle ColabでのPythonプログラムは、初期値としてsuti = 0 とし、while文の条件式で suti <= 10 とすることにより、suti が10を超えるまでsuti の2乗を計算し、その結果をプリントするというプログラムを書いてみました。

無限ループになった場合の対処法

 while 文で繰り返し処理のプログラムを書いていると、場合により無限ループになるコードを書いてしまうことがあります。

 そのような場合に、Google Colabではプログラムを実行「黒丸に白▷」のマークをクリックすることにより無限ループから抜け出す(終了する)ことができます。

 例えば、次に様なプログラムは無限ループとなります。

 上述のプログラムは実行している状態であり。左のマークの外側がぐるぐる回りますので、その「ぐるぐる回るマーク」をクリックすると、以下のように無限ループを抜け出すことができます。

break 文によるループの抜け出し

 プログラム上でループを抜け出したい場合は、「break 文」を利用します。

 例えば、次のプログラムは上述の無限ループを抜け出すためにbreak文を利用しています。

 上述のプログラムでは、suti が 50 になったら、while文を抜け出し、その時の suti を出力するプログラムとなっています。

continue 文

 continue文は、while文のの中で利用されると、continue文の以下の処理を中止して、while文の先頭に戻りやり直すことができます。

 つまり、ある条件の時は以下の処理をやらずに飛ばして再度実行することができます。

 以下の Python プログラムは、while 文で11回し、その都度 suti を出力するプログラムですが、途中で if 文により suti が 2 と 5 の場合を飛ばしていますので、出力結果は、2 と 5 が除かれた出力となっています。

while else の利用 

 while と一緒に else を利用すると、while そ処理が終了した後で else 以降の処理を実行することができます。

 以下は、初期値として suti = 0 とし、while 文で繰り返し処理を実行し、毎回 suti を1 を足しその数値を出力し、suti が 10 になったら終了し、その後 else 以降の処理を実行するプログラムです。

 それほど利用する機会はないと思いますが、 break文と一緒に利用することが一般的です。

 break 文と一緒に利用することにより、while文の繰り返し処理が全て実行された場合には「特定の処理(else節の処理)が実行され、while文の処理がbreakにより抜けた場合は、特定の処理(else節の処理)は実行しない」と言うように使います。

 上述のプログラムは、break 文により途中で suti が 5 になったらwhile文を抜け出す処理であり、その際にはelse節以降の処理が行われません。

おわりに

 如何だったでしょうか?

 while 文による繰り返し処理、break文、continue文、else節などについて解説してきました。

 この記事を読みながらPythonを学んでもらえればと思います。

 次をお楽しみに?

以上です。

 

コメント

タイトルとURLをコピーしました