スポンサーリンク

【Python入門8】for文とwhile文の違いと使い方をやさしく解説|初心者でもすぐに理解できる繰り返し処理の基本

Python入門
  1. 1. はじめに|繰り返し処理ってなに?なぜ大事なの?
    1. 🔁 繰り返し処理とは?
    2. 💡 なぜ大事なの?
    3. 🎯 このページで学べること
  2. 2. for文の基本構文と使い方
    1. 🔤 for文ってどんな書き方?
    2. 🔢 たとえば range() を使ってみよう!
    3. 🎒 変数の名前は自由に決められる!
    4. 📋 リストを使った for文
    5. 💡 まとめ:for文はこんなときに使おう!
  3. 3. while文の基本構文と使い方
    1. 🧠 while文ってどう書くの?
    2. 🎮 実際に使ってみよう!
    3. ⚠️ 無限ループに注意!
    4. 🙋‍♀️ じゃあどうやって止めるの?
    5. 🛑 break文で強制終了もできる!
    6. 💡 まとめ:while文はこんなときに使おう!
  4. 4. for文とwhile文の使い分けのポイント
    1. ✅ 基本の考え方はこれ!
    2. 🎯 使い分けのイメージ
      1. 🌀 for文が得意なケース
      2. 🔁 while文が得意なケース
    3. 🤔 どっちでも書ける場合は?
    4. 🧪 ちょっとした練習問題!
    5. 📝 まとめ:まずはルール、慣れてきたら応用!
  5. 5. よくある間違いとその対処法
    1. ❌ よくあるミス①:インデントのずれ
    2. ❌ よくあるミス②:無限ループになる(while文)
    3. ❌ よくあるミス③:rangeの使い方を間違える
    4. ❌ よくあるミス④:変数名の使い方に注意
    5. ✅ まとめ:エラーは成長のチャンス!
  6. 6. まとめ|使い分けを意識して書けるようになろう
    1. 🧠 今日のふりかえり
    2. 💬 どっちを使うか迷ったら?
  7. よくある質問(Q&A)
    1. 関連投稿:

1. はじめに|繰り返し処理ってなに?なぜ大事なの?

Pythonを勉強していると、こんなことを思ったことはありませんか?

「同じようなコードを何回も書くのって、なんかめんどうくさいな…」

たとえば、1から10までの数字を1行ずつ表示したいとき、もし全部手で書くとこうなります。

print(1)
print(2)
print(3)
# (以下略)
print(10)

……正直、手間がかかりますよね。それに、もし100回とか1000回繰り返したいときはどうすればいいでしょう?手作業では限界があります。

そこで登場するのが「繰り返し処理」です!


🔁 繰り返し処理とは?

かんたんに言うと、同じような処理を何回もくり返すための仕組みです。

Pythonでは、繰り返し処理を行うために主に2つの文(命令)を使います。

  • for文:回数が決まっているときに便利!
  • while文:条件が満たされるあいだ繰り返す!

どちらも、プログラムを効率的に書くために超重要なテクニックです。


💡 なぜ大事なの?

繰り返し処理を使うと…

  • 無駄なコードを何行も書かなくてよくなる
  • コードがスッキリして見やすくなる
  • エラーを減らせる(コピペミスも減る!)

たとえば、ゲームで「敵が10体出てくる」とか、「毎秒スコアを表示する」といった場面では、繰り返し処理が欠かせません。


🎯 このページで学べること

この記事では、Pythonのfor文とwhile文の使い方を、図やサンプルコードを交えながらわかりやすく解説します。

  • それぞれの文の書き方と特徴
  • どんなときに使い分けるのがよいか
  • 実際に役立つサンプルコード

プログラミング初心者やPythonを始めたばかりの中学生・高校生でも、「あっ、なるほど!」と思えるようにやさしく説明していくので、ぜひ最後まで読んでみてくださいね!




2. for文の基本構文と使い方

Pythonで「何回も同じことを繰り返したい!」ってときに大活躍するのが、forです。

とくに、「何回繰り返すかが決まっているとき」は、for文がとっても便利なんです!


🔤 for文ってどんな書き方?

基本の書き方はこちらです:

for 変数 in イテラブル:
繰り返したい処理

ちょっとむずかしく見えるかもしれませんが、かんたんに言うと、

「リストとか数の並びから1個ずつ取り出して、それで処理をくり返すよ!」

という感じです。


🔢 たとえば range() を使ってみよう!

Pythonには便利な range() という関数があります。

for i in range(5):
print(i)

このコードを実行すると…

0
1
2
3
4

と表示されます。

「えっ、5までって書いたのに4までしか出ないの?」と思うかもしれませんが、range(n) は「0からn未満(つまりn−1まで)」の数を出してくれる仕組みなんです。


🎒 変数の名前は自由に決められる!

さっきの例では i という名前の変数を使っていましたが、実はこれ、自由に好きな名前にできます!

for number in range(3):
print("番号は", number)

出力結果:

番号は 0
番号は 1
番号は 2

変数名は、その中身が何か分かるようにつけると、あとで見返したときにも分かりやすくなりますよ。


📋 リストを使った for文

for文は、数の並びだけじゃなくて、**リスト(複数のデータの集まり)**にも使えます。

fruits = ["りんご", "バナナ", "みかん"]

for fruit in fruits:
print(fruit + "が好き!")

実行結果:

りんごが好き!
バナナが好き!
みかんが好き!

このように、リストの中の要素を1つずつ取り出して、同じ処理を繰り返せるんです。


💡 まとめ:for文はこんなときに使おう!

  • 回数がはっきりしているとき(例:10回ループ)
  • リストやデータの集まりを順に取り出して処理したいとき
  • 何かを「順番に処理」したいとき

次は、「while文の基本構文と使い方」について、見ていきましょう!
こちらは「回数が決まってないとき」に便利ですよ。




3. while文の基本構文と使い方

さきほど紹介した for 文は「決まった回数くり返したいとき」に便利でしたね。

でも、**「何回くり返すか分からない」**ようなときには、while 文が出番です!


🧠 while文ってどう書くの?

while 文の基本の書き方はこちらです:

while 条件:
繰り返したい処理

これは、「条件がTrue(正しい)」のあいだ、ずーっと同じ処理を繰り返すよ、という意味です。


🎮 実際に使ってみよう!

次のコードは、1から5までの数字を表示する例です。

count = 1

while count <= 5:
print("カウント:", count)
count += 1 # countに1を足す

実行するとこうなります:

カウント: 1
カウント: 2
カウント: 3
カウント: 4
カウント: 5

ここでのポイントは、「条件が満たされなくなるまで処理をくり返す」ということ。


⚠️ 無限ループに注意!

次のコードを見てみましょう。

while True:
print("ずっと続きます…")

これは**ずっとTrue(真)**なので、止まりません。これを「無限ループ」と呼びます。

実際のプログラムでは、こういった無限ループを使うこともありますが、初心者のうちはうっかり止まらないコードを書いてしまうこともあるので注意!


🙋‍♀️ じゃあどうやって止めるの?

繰り返しを止めるには、条件が変わるようにしておく必要があります。

さっきのカウントの例では、count += 1 でカウントを増やしていくことで、いずれ count <= 5 がFalseになり、ループが終わるようになっています。


🛑 break文で強制終了もできる!

次のように break を使えば、条件に関係なく途中で繰り返しをやめることもできます。

while True:
word = input("やめたいときは 'stop' と入力してね: ")
if word == "stop":
break
print("あなたの入力:", word)

実行中に stop と入力すれば、ループを終了します。


💡 まとめ:while文はこんなときに使おう!

  • 「終わりの条件」がわからないとき(ユーザーの入力待ちなど)
  • 何かの状態をチェックして処理を続けたいとき
  • 条件に応じて柔軟にループを使いたいとき

次は、for 文と while 文の使い分けのポイントをわかりやすく解説していきます!




4. for文とwhile文の使い分けのポイント

ここまで、for 文と while 文、それぞれの使い方を学んできました。

でも…

「どっちを使えばいいのか分からない!」

という声もよくあります。

ここでは、どんなときに for を使うか、while を使うかを、わかりやすくまとめていきます!


✅ 基本の考え方はこれ!

シチュエーション使う文
回数が決まっているfor
終わる条件があるけど、回数は未定while

🎯 使い分けのイメージ

🌀 for文が得意なケース

  • 1から10まで数字を出したいとき
  • リストや配列を順番に処理したいとき
  • 決まった回数だけ何かをくり返したいとき
for i in range(5):
print("こんにちは!")

この場合、「5回だけ繰り返したい」と分かってるから for がぴったり!


🔁 while文が得意なケース

  • ユーザーが「やめる」と言うまで繰り返したい
  • 特定の条件が満たされるまで続けたい
  • 何かの状態を監視しながら処理したいとき
password = ""

while password != "open":
password = input("パスワードを入力してください: ")

print("ドアが開きました!")

ここでは「正しいパスワードを入れるまで続けたい」ので、while がぴったりですね。


🤔 どっちでも書ける場合は?

実は、「for でも while でも書ける」ような処理もあります。
そんなときは、コードが読みやすい方を選びましょう!

たとえば、数字を1から10まで表示するなら、for を使ったほうがシンプルに書けます。


🧪 ちょっとした練習問題!

Q. ユーザーが「終了」と入力するまで名前を聞き続けるには、どっちを使う? <details> <summary>▶︎ 答えを見る</summary>

A. while文!
なぜなら、終了のタイミング(条件)が決まっているけど、何回繰り返すかは決まっていないからです。 </details>


📝 まとめ:まずはルール、慣れてきたら応用!

  • 「回数がわかっている」なら for
  • 「条件によって続けたい」なら while
  • どちらも使えるようになれば、プログラムの幅がぐーんと広がります!

次は、「よくある間違いとその対処法」について紹介していきます!
初心者がつまずきやすいポイントをチェックしておきましょう!




5. よくある間違いとその対処法

Pythonの for 文や while 文を使っていると、はじめのうちは**ちょっとしたミスでうまく動かない!**なんてこともよくあります。

ここでは、初心者がつまずきやすいポイントをピックアップして、原因と対処法をセットで解説していきます!


❌ よくあるミス①:インデントのずれ

Pythonでは、「インデント(字下げ)」がとっても大事!

for i in range(3):
print(i)

これ、エラーになります!
なぜかというと、print(i) にインデントがないからです。

✅ 正しくはこう!

for i in range(3):
print(i)

🔍 ポイント:

  • forwhile の次の行は、必ずスペースかTabで字下げしよう!

❌ よくあるミス②:無限ループになる(while文)

こんなコード、書いたことありませんか?

count = 1
while count <= 5:
print(count)
# countを増やしてない!

このままだと count がずっと「1」のままなので、条件がずっとTrueになって無限ループします。

✅ 対処法:

count = 1
while count <= 5:
print(count)
count += 1 # これでcountが増えて、ループが終わる!

🔍 ポイント:

  • while 文では、条件がFalseになるように変化させる処理を忘れずに!

❌ よくあるミス③:rangeの使い方を間違える

たとえばこんなコード:

for i in range(1, 5):
print(i)

結果は…

1
2
3
4

「あれ?5も出てくると思ったのに!」

そう、Pythonの range() は「最後の数字は含まない」のがルールなんです。

✅ もし1〜5を表示したいなら:

for i in range(1, 6):
print(i)

🔍 ポイント:

  • range(開始, 終了) の「終了」は含まれない

❌ よくあるミス④:変数名の使い方に注意

for item in range(3):
print(i)

このコード、エラーは出ませんが、変数名が違うので思ったように動きません!

item を使っているなら、item を print しないとね。

for item in range(3):
print(item)

🔍 ポイント:

  • for文で使った変数名と、実際に使う変数名を一致させよう!

✅ まとめ:エラーは成長のチャンス!

  • インデントを忘れずに!
  • while では条件を変える処理を入れよう!
  • range の使い方に注意しよう!(終了値は含まれない!)
  • 変数名のミスにも気をつけて!

エラーが出ても、原因がわかればレベルアップのチャンスです!
あきらめずに、ひとつずつ直していきましょう。




6. まとめ|使い分けを意識して書けるようになろう

ここまで、Pythonの**for文とwhile文**について学んできましたね。

  • どちらも「繰り返し処理」をするための大切な文(命令)
  • 使い方や目的にあわせて選ぶことで、プログラムをスッキリ&わかりやすくできます!

🧠 今日のふりかえり

内容ポイント
🔁 for回数が決まっているときに使う(例:リストやrangeでの繰り返し)
🔄 while条件が満たされるあいだ繰り返す(例:ユーザーの入力待ちなど)
⛔ よくあるミスインデント忘れ、無限ループ、rangeの使い方ミスなどに注意

💬 どっちを使うか迷ったら?

  • まずは 「何回くり返すのか?」 を考えてみよう。
  • 決まっていれば for、決まっていなければ while が基本の考え方です!

最初はうまく動かなくても大丈夫。
for文とwhile文をいろいろ試して、自分の思ったとおりに動くようになったら、もう立派なPython使いです!


よくある質問(Q&A)

Q
for文とwhile文、どっちを使えば正解なんですか?
A

「何回くり返すか」が決まっているなら for 文、
「いつ終わるかわからないけど条件がある」なら while 文を使うのが基本です。
たとえば、「5回だけ表示したい」は for
「正しいパスワードを入れるまで待ちたい」は while が向いています。

Q
range(3) と書くと、なぜ「0, 1, 2」になるの?
A

Pythonの range(n) は、「0 から n−1 まで」の数を自動で作ってくれる関数です。
つまり、range(3) は「0、1、2」の3つの数を作ってくれる、ということですね。

Q
while文が止まらなくなってしまいました…
A

それは「無限ループ」になっている可能性が高いです!
while の中で、条件がいつか False になるように変数を変化させる処理(たとえば count += 1 など)を入れ忘れていないかチェックしてみましょう。

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク