python forによる繰り返し処理についてまとめています。
pythonのforの構文/繰返し処理を行う
pythonのループ処理は、for文を使います。以下、linux(Ubuntu)で実行するサンプルです。
#!/usr/bin/python3 print( "# 3回ループ" ) cnt=3 for i in range(0,cnt): print( i ) print( "# 5回ループ" ) cnt=5 for i in range(0,cnt): print( i ) # 変数iが2のときにループ終了 if( i == 2 ): break else: continue print( "no exec" ) print( "# 0回ループ" ) cnt=0 for i in range(0,cnt): print( i ) # 一度もループしなかったときに実行 else: print( "no loop" )
上記にsample1.pyという名前をつけてファイルに保存します。
chmod +x で実行権限を与えて実行。
% chmod +x ./sample1.py
実行すると、こうなります。
/sample1.py # 3回ループ 0 1 2 # 5回ループ 0 1 2 # 0回ループ no loop
pythonのfor:break ループ途中でループを終了する
forループ内でbreakを実行すると、ループ途中でループを抜けます。
print( "# 5回ループ" ) cnt=5 for i in range(0,cnt): print( i ) # 変数iが2のときにループ終了 if( i == 2 ): break else: continue print( "no exec" )
上記のサンプルでは、ループ変数iが2のときにループを終了します。
pythonのfor:continue 以降のforループ内処理をおこなわず、ループ先頭に戻る
上記のサンプルで、ループ変数iが2以外のとき、ループ先頭に戻って次の処理を実行します。
else: continue
サンプル中のprint( “no exec” ) は実行されません。
pythonのfor:else 一度もループを実行しなかったときに実行
print( "# 0回ループ" ) cnt=0 for i in range(0,cnt): print( i ) # 一度もループしなかったときに実行 else: print( "no loop" )
for文に対するelseは、一度もループを実行しなかった場合に実行される処理です。
上記の例では、cnt=0に設定しているので、range(0,cnt)の出力は空となり、forループが実行されません。その場合、else部分のみが実行されます。
# 0回ループ no loop
python for/範囲指定(range)でループする方法
pythonでは、for文とrange関数を組み合わせて範囲指定でループを行います。
range(0,10)という指定で、0から始まり10未満の数値を生成(0~9)し、その回数だけループします。
for i in range(0,10): print( i ) 0 1 2 3 4 5 6 7 8 9
python ~ for in/配列の数だけループする方法
pythonでは、inと配列を組み合わせて、配列の数だけループをおこなう事が可能です。
item = ['a', 'b', 'c', 'd', 'e'] for i in item: print( i ) a b c d e
上記は、itemというリストの値の数だけループし、ループ変数iの値を表示します。
配列の中身を読み出したり、加工したりする処理で重宝します。
python forのまとめ
- forはpythonの繰り返し処理をおこなう文
- forとrangeを組み合わせて、指定回数分のループが可能
- forとin、配列を組み合わせて、配列の値を取り出しながら値の数だけループが可能