この記事の主な対象読者
python以外の本格的なプログラミング言語でfor文を習ったこと・学習したことが全くない人を対象としています。なるべく理解しやすく、難しい言葉は使わずに進めます。
(※というより私自身、中学2年生でそこまで難しい言葉は逆に使えません)
必要最低限な前提知識
「print」「変数」「配列(リスト)」「len()」
この中に分からない内容があれば先に調べることを推奨します。
for文その1(range)
まずよくpythonで使用されるプログラムとしてこのようなものがあります
for i in range(10):
print(i)
これを簡単なscratchという言語に置き換えてみると
このようになります。つまりrange(10)というのは10回処理を繰り返すということで、iというものは変数で、このiは1回の処理ごとに1ずつプラスされていきます。
(iが一般的だけど、あくまで変数名なのでなんでも大丈夫です)
つまりこの場合、実行結果は
0
1
2
3
4
5
6
7
8
9
となります。しかし、すでにご存じの方もいると思いますがここで「あれ?これ0から始まって9で終わってるくね」と思う方もいると思います。そうなんです!pythonに限らず、基本プログラミング言語は0から始まることが多いです。
ちなみにこのようなものもあります。
for i in range(10,15):
print(i)
実行結果
10
11
12
13
14
こうすることで、最初を0からではなく10からにして、10から15(- 1で14)まで繰り返すことができます。
他にも
for i in range(0,10,2):
print(i)
実行結果
0
2
4
6
8
こうすることで0から10(- 1で9)までの範囲でiを2ずつ変えることができます。
(範囲を0から-10までなどにしていれば-2ずつ変えることも可能)
for文その2(rangeなし)
このようなプログラムがあったとして、
list = ["A","B","C"]
for i in list:
print(i)
実はこのプログラムは
list = ["A","B","C"]
for i in range(len(list)):
print(list[i])
これと同じです。そして実行結果は
A
B
C
となります。listという配列を最初の要素(この場合"A")から最後の要素(この場合"C")まで1回ずつiという変数に代入しています。
繰り返す数は文字の集まり(この場合リストの要素数)の量になります。(この場合は3回)
ちなみに文字の集まり分繰り返すのでこのように文字列を1つずつ取り出すこともできます。
var = "ABC"
for i in var:
print(i)
実行結果
A
B
C
for文その3(enumerate)
まず初めに例文がこちらです。
list = ["A","B","C"]
for j,i in enumerate(list):
print(j,i)
そして実行結果はこちらです。
0 A
1 B
2 C
まず変数がiだけではなくjが増えていますよね。これは左の変数(この場合j)に今何回目の繰り返しかが入り、右の変数(この場合i)に先ほど同様listの要素が最初の要素から順番に代入されます。
for文その4(zip)
まず初めに例文がこちらです。
list1 = ["A","B","C"]
list2 = ["D","E","F"]
for i,j in zip(list1,list2):
print(i,j)
そして実行結果はこちらです。
A D
B E
C F
これは左側の変数に(この場合i)にlist1の要素を、右側の変数に(この場合j)list2の要素を、最初から順番に代入します。
ちなみにこのようなプログラムがあったとします
list1 = ["A","B","C"]
list2 = ["D","E",]
for i,j in zip(list1,list2):
print(i,j)
この場合要素が少ないほうのlist2に合わせられ、実行結果は
A D
B E
となります。