while文と同じ様に
Pythonでは他の言語と同じく
繰り返し処理を行う文としてfor文が
備わっています

基本的な構文は

for 変数 in オブジェクト:
  実行する処理

このようになります

実行する処理の部分はインデントで
字下げを行うことが必要になります

whileとの違いは
何回処理をするかがあらかじめ決まっていることです
オブジェクトの個数分だけ処理が行われます

オブジェクトにはリストやrange関数が良く用いられます
for v in range(5):
    print(v)
0
1
2
3
4

この場合range関数の結果は0から5の手前までになるので
変数vには0から4までが格納されることになります

if分と組み合わせると
for v in range(1,41):
    if v%3 == 0 or '3' in str(v):
        print(v)
3
6
9
12
13
15
18
21
23
24
27
30
31
32
33
34
35
36
37
38
39

昔流行った「3の倍数と3が含まれる数」
の場合に処理をする際にはこうなります
1から40まで処理を行うのでrangeの引数は(1,41)となります

リストを回数部分に指定できます
friendList = ['チョッパー','ゾロ','ナミ','ウソップ','サンジ']
for friend in friendList[2:4]:
    print(friend)
ナミ
ウソップ

リストの全てを条件にするのでなく
スライスで区切ればその中の一部だけを取り出して
繰り返し処理を行うこともできます

リストの1番目を取り出す場合の指定がlist[0]になるため
この場合はリストの3番目から5番目の手前までが
繰り返しの対象になっています


制御文の使い方


for文の処理内で制御することもできます
その際に使われるのが
・else
・break
・continue
です

まずelse文の処理はwhile文と同じく
for文の処理が終わった後に1度だけ実行されます
breakでfor文の処理を抜けた場合は実行されません

continueは処理を途中で飛ばし
ループの最初に戻ります
friendList = ['チョッパー','ゾロ','ナミ','ウソップ','サンジ']
_num = len(friendList)
for i in range(_num):
    if i%2==0:
        print(friendList[i])
    else:
        continue
        print(friendList[i])
else:
        print('終わり')
チョッパー
ナミ
サンジ
終わり

この場合途中の処理は飛ばされていますが
最後にelse文の処理は実行されます

for文の中にfor文を入れ子(ネスト構造)にすることもできます
for i in range(1,6):
    for h in range(1,6):
            print(str(i * h) + '\t', end="")
    print('\n')
1	2	3	4	5	

2	4	6	8	10	

3	6	9	12	15	

4	8	12	16	20	

5	10	15	20	25	

九九計算も簡単にでき、rangeの数値を増やせば
結果も増やせます

出力に関して
「\n」(windowsでは¥n)は改行
「\t」(windowsでは¥t)はタブ区切り
になります