for文 基本
for文は任意のシーケンス(リストやタプルなど)から要素を一つずつ取り出して処理ができます。
記法
for 繰り返し変数 in シーケンス:
forループで実行するブロック
次の例はplanetsのリストから要素を一つづつ取り出して表示しています。
planets =['Mercury','Venus','Earth'] for planet in planets: print(planet)
【結果】
Mercury Venus Earth
数列を使いたい時
任意の数列を使いたい場合、range()やenumrate()が役立ちます。
range(end)
range(end)は0からend-1までのシーケンスを生成します。endには1以上の整数を設定します。
range(end)はrange(0,end)と同じ意味です。
endに0以下の負の整数をセットすると何も生成されません。
seq = list(range(5)) print (seq) for i in range(3): print(i)
【結果】
[0, 1, 2, 3, 4] 0 1 2
range(start, end)
range(start, end)はstartからend-1までのシーケンスを生成します。start < endになるように設定します。
seq1 = list(range(6, 10)) seq2 = list(range(-6, -3)) print (seq1) print (seq2)
【結果】
[6, 7, 8, 9] [-6, -5, -4]
range(start, end, step)
range(start, end, step)はstartからend-1までのstepおきのシーケンスを生成します。
デフォルトではstepは1に設定されています。昇順、降順どちらでも作れます。
range(0, 10, 3)の場合は、0, 3, 6, 9のシーケンスを生成します。
for i in range(0,10,3): print(i)
【結果】
0 3 6 9
rangeの制約
range r の式は r = start + step*i で決まり、
stepが正の時の制約条件は 0≦i, r[i] < stop
stepが負の時の制約条件は 0≦i, r[i] > stop
です。r[0]の時、値の制約を満たさない場合は空になります。
range(0) range(1, 0) range(0, -12, 3)
【結果】
[] [] []
enumerate(iterable, start=0)
enumerate関数を使うとシーケンスのループを行う際、シーケンスの要素と、要素のインデックスを取り出すことができます。startを指定すると、インデックスはその番号からのカウントになります。
planets =['Mercury','Venus','Earth'] for i, planet in enumerate(planets): print(str(i) + ': ' + planet) for i, planet in enumerate(planets, start = 9): print(str(i) + ': ' + planet)
【結果】
0: Mercury 1: Venus 2: Earth 9: Mercury 10: Venus 11: Earth
break文, continue文
break文はループの途中でループから抜け出します。
continue文はループを中断して次のループに移ります。
print('----- continue sample -----') for i in range(4): if i % 2 == 0: print(i, 'は2で割り切れます') continue print(i, 'は2で割り切れません') print('----- break sample -----') for i in range(6): if i > 1: print(i,'> 1なのでループを抜けます') break
【結果】
----- continue sample ----- 0 は2で割り切れます 1 は2で割り切れません 2 は2で割り切れます 3 は2で割り切れません ----- break sample ----- 2 > 1なのでループを抜けます
コメントを残す