「同じ処理を何回も書くのは大変…」「回数が決まっていないくり返しはどうやるの?」Pythonを学び始めると、こんな疑問にぶつかりますよね。そんなときに活躍するのがwhile文です。
この記事では、while文の基本から、無限ループの注意点、breakとcontinueの使い方、for文との使い分けまでを、動くコード付きで初心者向けに解説します。現役SEの私が実務でも使う場面を交えてお伝えしますので、ぜひ最後までご覧ください。
while文とは?条件が成り立つ間くり返す構文
while文は、条件式がTrueの間、処理をくり返し実行する構文です。くり返す回数があらかじめ決まっていないときに向いています。基本の書き方は次のとおりです。
while 条件式:
くり返したい処理条件式の後ろには必ずコロン(:)を付け、くり返す処理は半角スペース4つでインデント(字下げ)します。インデントされている範囲が、くり返しの対象です。
while文の基本的な使い方
1〜5までを表示する
カウンターの変数を用意し、ループのたびに1ずつ増やす、もっとも基本的なパターンです。
count = 1
while count <= 5:
print(count)
count += 1
# 実行結果
# 1
# 2
# 3
# 4
# 5count += 1はcount = count + 1の省略形です。この更新処理を忘れると、条件がずっとTrueのままになってしまいます(後述の無限ループです)。
1から10までの合計を求める
total = 0
i = 1
while i <= 10:
total += i
i += 1
print(total) # 55合計や累積など、「状態を更新しながら進める」処理はwhile文が得意です。関数の作り方を復習したい方は、関数(def)の作り方の解説記事も参考にしてください。
独学で伸び悩んだら、プログラミングスクールの活用も選択肢の一つです。選び方の軸はPythonが学べるプログラミングスクールの比較記事にまとめています。
無限ループに注意しよう
条件式がずっとTrueのままだと、処理が永遠に終わらない無限ループになります。次のコードは、countが更新されないため止まりません。
count = 1
while count <= 5:
print(count)
# count += 1 を書き忘れている → 無限ループ!実行中に止まらなくなったときは、ターミナルでCtrl + Cを押せば強制終了できます。while文を書いたら「条件式に使う変数が、ループ内で必ず変化するか」を確認するクセをつけましょう。
breakでループを途中で抜ける
意図的に無限ループ(while True)を作り、条件を満たしたらbreakで抜ける書き方もよく使われます。ユーザー入力を受け付ける処理が代表例です。
while True:
answer = input("終了するには q を入力: ")
if answer == "q":
break
print(f"入力: {answer}")
print("終了しました")break文とcontinue文の違いは、break文とcontinue文の解説記事で詳しく紹介しています。
continueで今回の処理だけ飛ばす
continueは、その回の残りの処理をスキップして次のくり返しに進みます。奇数だけ表示する例です。
n = 0
while n < 10:
n += 1
if n % 2 == 0:
continue
print(n)
# 実行結果
# 1
# 3
# 5
# 7
# 9continueの前にn += 1を置いているのがポイントです。更新より後ろに書くと、更新が飛ばされて無限ループになることがあります。
回数が決まっていない処理の例
たとえば「100を、1以下になるまで2で割り続ける」といった処理は、何回で終わるか事前には分かりません。こういうときにwhile文が活きます。
x = 100
while x > 1:
x //= 2
print(x)
# 実行結果
# 50
# 25
# 12
# 6
# 3
# 1for文とwhile文の使い分け
- for文:リストや範囲など、くり返す対象・回数が決まっているとき(例:
for i in range(5)) - while文:条件が満たされる間続けたいとき、終わる回数が事前に分からないとき
迷ったら、まずfor文で書けないかを考えるのがおすすめです。for文の基本はfor文・range関数の解説記事で確認できます。リストを作るだけならリスト内包表記も便利です。
もっと効率的にPythonを学びたい人へ
while文のような制御構文は、読むだけでなく自分で書いてエラーを経験すると一気に理解が進みます。とはいえ、独学だと「エラーの原因が分からない」「何から学べばよいか迷う」といった壁にぶつかりがちです。
マンツーマン指導で未経験からPythonを習得でき、転職サポートや無料カウンセリングも用意されているスクールなら、疑問をその場で解消しながら効率よく学べます。まずは無料カウンセリングで相談してみるのも一つの方法です。
※本記事には広告(アフィリエイトリンク)を含みます。
Pythonプログラミング|マンツーマンレッスンで初めてをプロに育てる【Python Winner】![]()
まとめ
- while文は条件がTrueの間処理をくり返す構文
- カウンター変数の更新を忘れると無限ループになるので注意
breakでループを抜け、continueで今回の処理だけスキップできる- 回数が決まっていればfor文、決まっていなければwhile文が基本
実際に手を動かして、カウンターの値を変えたりbreakを入れたりしながら試してみてください。
ナノトイラボ 