前回は、条件分岐のif文について触れていきました。 今回は、第2弾として繰り返し処理のfor文とwhile文について触れていきます。
ちなみに前回の記事は、こちらになります。
目次
繰り返し処理
ループ処理とも呼ばれてます。
for文
基本構文はこちら、
1 2 |
for 変数 in シーケンス型(リストや文字列) : 処理 |
末尾の:(コロン)を忘れずに。 シーケンス型は、ほかの言語では”配列”とも言われます。 これについては、別の型のときに触れていきます。
構文の意味としては、シーケンス型に含まれているアイテムについて、 処理が実行されます。
例えば、文字列”ABCDEF”をひとつずつ表示したい場合、 for文を使うと下のようになる。
1 2 3 |
x = "ABCDEF" for i in x: print(i) |
これを実行すると、
1 2 3 4 5 6 |
A B C D E F |
こんな形になります。 この処理を絵にしてみると……

forの処理を表しているのが、台形の部分になります。
回数に応じてループを回したい場合
他の言語の例として、VB.Netでは、for文には2種類あって、 1種類は、前述したPythonでのfor文、これがVB.Netだとfor~each文と位置付けられています。 ※for~each文ってなんだ?ってなると思うので簡単に触れます。 したに、VB.Netでのfor~each文を記します。
1 2 3 4 |
Dim x As String = "ABCDEF" For Each i As String in x Console.WriteLine(i) Next i |
これが、Pythonで扱われるfor文に近い処理になります。 Pythonの時と同じ処理になります。 Pythonの方がシンプルに記述されているのがわかるかと思います。 VB.Netの文法については、VisualBasic回でまとめます。
2種類目が、for文で下のような文になります。
1 2 3 4 |
Dim maxNum As Integer = 10 For i As Integer = 0 to maxNum Console.WriteLine(i) Next i |
これは、0から10までを繰り返し、それぞれ表示をしています。 値の出力は、VB.Netだと“Console.WriteLine”で行えます。
このようにVb.Netでは2種類のfor文があります。 ですが、Pythonには、このVB.Netでいうfor文がありません。 したがって回数に応じて繰り返し処理をしたい場合、
1 2 3 4 5 6 7 |
x = 10 for i in x: print(i) # 'int' object is not iterable # File "パス名", line 2, in <module> # for i in x: |
こう書きたくなりますが、エラーとなってしまいます。 じゃあ、どうすればいいのか……そこでrange関数という関数を使います。
range関数
range関数は、必要に応じて整数値を生成する、 範囲オブジェクトと呼ばれるオブジェクトを作成します。 for文においては、特定の回数を繰り返したい場合に使われます。 構文としては、下のようになります。
range(開始番号[、停止番号][、ステップ番号])
パラメータ(開始整数、終了整数、ステップ)を設定することで、 条件を変更できます。 開始番号の初期値は0になります。←注意が必要
ステップ番号は、何個ずつ処理を行うかになります。 負の値も使うことができます。 ステップ番号が与えられていない場合は、0からスタートになります。
ここで例を示します。
1 2 3 4 5 6 7 8 9 10 11 |
# 10回繰り返す処理の場合 for i in range(10): print(i) # 結果 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 # 0 ~ 10まで2つずつ繰り返す場合 for i in range(0, 10, 2): print(i) # 結果 # 0, 2, 4, 6, 8 |
こんな感じになります。 開始番号が0なので、10までは繰り返されません。 ※ 気を付けてください。筆者もこれでハマった時があります。 このrange関数を使うことで、回数に応じた繰り返しができるようになります。 例えば、前回学んだif文と組み合わせると……
1 2 3 4 |
for i in range(10): if i == 3: print("Hello World") break |
ここでは、3回まで繰り返したら”Hello World”を出力し、 処理を抜けるということをしています。 処理抜ける際に使う文が、breakといわれる文です。 これを使うことで処理を抜けることができます。 絵で描くと、
1 2 3 4 5 |
for i in range(10): if i == 3: continue print(i) |
これは、3回目だけ、値が出力されません。 このcontinue文は、ループをスキップしたいときに使います。 こちらも絵で描くと、

こんな感じになります。
for文については、いろいろ触れてきましたが ざっと、ここまでわかっていれば使えると思います。
練習問題を……
① forループを10回繰り返したとき、 偶数のときだけ、数値を出力してください。
② forループを10回繰り返したとき、 3回目でループを抜けだしてください。 ※ 途中回数は出力してください。
おわりに
while文については、次回に持ち越します……。(すみません。) 興味を持ってもらえたら嬉しいです。 知識の共有が誰かしらの支えや糧になればなと思います。