0 はじめに
この記事について
一般的に用いられるほとんどのプログラミング言語にはfor文というものが存在します。
for文の用法は多岐にわたり、使える数がその言語への習熟度を示すと言っても過言ではありません。
この記事ではPythonでのfor文の用法を列挙します。
Pythonが少しでも使える方を対象に、私の知る限りの用法をまとめましたので、参考にして頂けますと幸いです。
for文とは
for文では次のような操作ができます。
①ある操作を指定した回数繰り返す
②イテレータの要素を1つずつ見ていく
イテレータとは簡単に言えば「何かが集まったもの」です。文字列や配列などがイテレータに該当します。
また、実は①も②の一部と捉えることができます。
発展的な話題ですので、後ろの章で述べようと思います。
1 基本
1-0 カウント変数
カウント変数というものが存在して、for文を「回す」ごとに指定した通りに変化していきます。
(注釈.for文を「回す」という言い回しはよく使われますが、「進行する」と同義だと思って構いません。似た表現として、受験数学における「帰納法を回す」などが見られます)
for (カウント変数) in (なにか)という形が基本です。
1-1 for i in range(N)
これが最も有名でしょう。
for i in range(N)で、iは0からN-1まで1ずつ増えていきます。
(注.「1からNまで」ではありません。)
なので、
for i in range(6):
print(i)
これを実行すると、
0
1
2
3
4
5
という出力が得られます。
1-2 for i in range(A,B)
for i in range(A,B)で、iはAからB-1まで変化します。
Bには到達しません。
なので、
for i in range(-1,3):
print(i)
を実行すると出力は
-1
0
1
2
となります。
1-3 for i in range(A,B,C)
for i in range(A,B,C)で、iはBを越えるまでAはCずつ増えてきます。
なので、
for i in range(2,8,3):
print(i)
これを実行すると
2
5
となります。(8を過ぎるまで、2から3ずつ増やしていくと2→5となります)
また、
for i in range(6,2,-1):
print(i)
これを実行すると
6
5
4
3
となります。(2を過ぎるまで6から1ずつ減らしていくと6→5→4→3となります)
...
実は、1-1と1-2で紹介した用法は、1-3でBとCの引数を省略した形なのです。
すなわち、range(N)はrange(0,N,1)、range(A,B)はrange(A,B,1)の省略形です。
1-4 for文の中断・スキップ
breakで、処理中のfor文を終了し、continueでfor文の処理をスキップできます。
そして、for文がbreakされたかはelseで判定することができます。
具体的には、
for i in range(5):
print(i)
if i==3:
break
を実行すると、
0
1
2
3
のように、i=3の時にfor文は終了します。
for i in range(6):
if i%2==0:
continue
print(i)
を実行すると、
1
3
5
のように、i%2==0、つまりiが偶数の時にfor文の処理がスキップされます。
そして、
for i in range(5):
print(i)
if i==3:
break
else:
print("for文が終了されました")
とすると、
0
1
2
3
のように、
for文がbreakで中断されなかった時に限りelse以下の処理が行われます。(2026/02/19 smismithさんのご指摘に基づき訂正)
2 イテレータの要素を見ていく用法
2-1 for i in (イテレータ)
for i in (イテレータ)で、iがイテレータの要素を1つずつ移っていきます。
つまり、
S="abcd"
for i in S:
print(i)
を実行すると
a
b
c
d
となります。
また、
L=[4,2,5,3]
for i in L:
print(i)
を実行すると
4
2
5
3
となります。
2-2 for i,n in enumerate(L)
for i,n in enumerate(L):
print(i,n)
は、
for i in range(N):
print(i,L[i])
と同義です。
すなわち、for i,n in enumerate(L)とすると、iは0から(Lの長さ)-1まで変化し、nはLの要素を1つずつ移っていきます。
案外使われることが多いので、覚えておくとよいでしょう。
2-3 辞書型の要素を見ていく用法
辞書型の説明は次を参照してください。辞書型についての記事
Dを辞書型の変数とすると、D.keys()でDのkey、D.values()でDのvalue、D.items()でDのkeyとvalueの組の配列を得られます。
(注.型は配列ではありません)
なので、
D={1:"a",2:"c",3:"d",4:"b"}
for n,a in D.items():
print(n,a)
を実行すると
1 a
2 c
3 d
4 b
となります。
(出て来る順番はkeyでソートされているように思えます)
3 おわりに
以上がfor文の主な使い方です。
不明点等ございましたらコメント欄にてお願いします。
他にもPythonや競技プログラミングに関する記事を出しておりますので参考にしていただけますと幸いです。