【Python】for文・while文で繰り返し処理をする方法を解説

Python

こんにちは、かつコーチです。

前回、if文を使った条件分岐を解説しました。

今回は、プログラミングのもう一つの基本要素である繰り返し処理(ループ)を扱います。

「for文とwhile文、どっちを使えばいいの?」

「break・continueの使いどころが分からない」

そんな疑問を、実際のコード例とともに解消していきます。

for文の基本の書き方

range()で指定回数繰り返す

for文は、決まった回数や決まったデータの数だけ処理を繰り返すときに使います。

range()関数と組み合わせると、指定した回数だけループできます。

for i in range(5):
    print(i)
0
1
2
3
4

range(5)は「0から4まで」の5個の数値を順に返します。

開始値と終了値を指定したい場合は、range(開始, 終了)のように書きます。

for i in range(1, 6):
    print(i)
1
2
3
4
5

リストをループで処理する

for文は、リストの要素を1つずつ取り出す処理でもよく使います。

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

for fruit in fruits:
    print(fruit)
りんご
バナナ
みかん

fruitという変数に、リストの中身が1つずつ順番に代入されます。

while文の基本の書き方

while文は、「条件がTrueである間、処理を繰り返す」ループです。

繰り返す回数が事前に決まっていない場合に向いています。

count = 0

while count < 5:
    print(count)
    count += 1
0
1
2
3
4

count += 1を書き忘れると、条件が永遠にTrueのままになり、無限ループに陥ってしまいます。

while文を書くときは、必ずループを終わらせる条件を意識してください。

for文とwhile文の使い分け

状況向いている文
繰り返す回数が決まっているfor文
リストなどの要素を順に処理したいfor文
条件が満たされるまで繰り返したいwhile文
繰り返し回数が事前に分からないwhile文

迷ったときは、「回数やデータが決まっているか」を基準に選ぶとよいでしょう。

break・continueの使い方

breakでループを途中で終了する

breakは、条件を満たした時点でループそのものを終了させる命令です。

for i in range(10):
    if i == 5:
        break
    print(i)
0
1
2
3
4

iが5になった瞬間にループが終了するため、5以降の数値は表示されません。

continueでその回だけスキップする

continueは、その回の処理だけをスキップして、次の繰り返しに進む命令です。

for i in range(10):
    if i % 2 == 0:
        continue
    print(i)
1
3
5
7
9

偶数のときだけcontinueが実行され、print(i)がスキップされます。

結果として、奇数だけが表示されます。

よくあるつまずきポイント・エラー対処

while文でカウンタの更新を忘れて無限ループになる

これは筆者が初めてwhile文を書いたときに、実際にやってしまった失敗です。

❌ Before(無限ループになる書き方)

count = 0

while count < 5:
    print(count)

このコードを実行すると、countの値が更新されないため、count < 5が永遠にTrueのままになります。

画面に0が延々と表示され続け、ターミナルがフリーズしたような状態になりました。

筆者はこのとき慌ててしまいましたが、Ctrl + Cを押すことでプログラムを強制終了できます。

✅ After(正しい書き方)

count = 0

while count < 5:
    print(count)
    count += 1
0
1
2
3
4

count += 1を書き加え、ループのたびにcountの値を1ずつ増やすことで、条件がいずれFalseになり、正常にループが終了します。

while文を書くときは、「このループはいつ終わるのか」を必ず自問する習慣をつけておくと、こうしたミスを防げます。

まとめ

この記事のポイント

  • for文は回数やデータの数が決まっている繰り返しに向いている
  • while文は条件を満たすまで繰り返す処理に向いている
  • range()と組み合わせることでfor文で指定回数のループが書ける
  • breakはループ自体を終了、continueはその回だけスキップする
  • while文ではカウンタの更新忘れによる無限ループに注意する

次に読むべき記事

  • if文・elif・elseで条件分岐
  • リストの基本:作成・追加・削除・スライス
  • 関数の定義と引数(デフォルト引数・可変長引数)

タグ: Python, 初心者向け, 基本文法

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