Pythonのfor文でループする方法
Pythonの繰り返し処理はfor文を使って行います。
Pythonのfor文はrange関数や反復可能オブジェクトを利用することで処理を繰り返し行えます。
またPythonの独特な処理としてbreak文で終了しなかった場合のみ実行されるelse文を作成することができます。
for文は
for ループ変数 in 反復可能オブジェクト: 処理ブロック 処理ブロック
の形になります。
Pythonのfor文
Pythonのfor文は反復可能オブジェクトの内容を順番に取得し、なくなるまで処理を行います。
range()関数を使ったfor文
for文の反復可能オブジェクトにrenge()関数を指定すると、引数に与えた条件分、値を返してくれます。
range()関数の引数が1つの場合
range()関数の引数が1つの場合は0から指定された値-1までの数値がfor文のループ変数にセットされます。
for i in range( 3 ) : print( "iの値は{}です。".format( i ))
上記のソースの実行結果は
iの値は0です。 iの値は1です。 iの値は2です。
になります。
range()関数の引数が2つの場合
range()関数の引数が2つの場合は1番目の値から2番目の値-1までの数値がfor文のループ変数にセットされます。
for i in range( 2, 6 ) : print( "iの値は{}です。".format( i ))
上記のソースの実行結果は
iの値は2です。 iの値は3です。 iの値は4です。 iの値は5です。
になります。
range()関数の引数が3つの場合
range()関数の引数が3つの場合は1番目の値から2番目の値-1までの数値を3番目の値ずつ増加させた値がfor文のループ変数にセットされます。
for i in range( 1, 9, 2 ) : print( "iの値は{}です。".format( i ))
上記のソースの実行結果は
iの値は1です。 iの値は3です。 iの値は5です。 iの値は7です。
になります。
反復可能オブジェクトを使ったfor文
反復可能オブジェクトを使ったfor文は反復可能オブジェクトの最初から最後までがfor文のループ変数にセットされます。
lst = [ "ABC", "DEF", "GHI" ] for i in lst : print( "iの値は{}です。".format( i ))
上記のソースの実行結果は
iの値はABCです。 iの値はDEFです。 iの値はGHIです。
になります。
enumerate()関数を使ったfor文
enumerate()関数をfor文で使うとインデックスと値を同時に取得してfor文のループ変数にセットされます。
lst = [ "ABC", "DEF", "GHI" ] for index, item in enumerate( lst ) : print( "index={},item={}".format( index, item ))
上記のソースの実行結果は
index=0,item=ABC index=1,item=DEF index=2,item=GHI
になります。
for文を途中で抜けるbreak
for文のブロック内から途中で終了してfor文を脱出するにはbreak文を使います。
lst = [ "ABC", "DEF", "GHI" ] for i in lst : if i == "DEF" : break print( "iの値は{}です。".format( i ))
上記のソースの実行結果は
iの値はABCです。
になり、iが「"DEF"」の条件でfor文が終了しています。
for文の途中でループの先頭に戻るcontinue
for文のブロック内から途中で終了してfor文の先頭に戻るにはcontinue文を使います。
lst = [ "ABC", "DEF", "GHI" ] for i in lst : if i == "DEF" : continue print( "iの値は{}です。".format( i ))
上記のソースの実行結果は
iの値はABCです。 iの値はGHIです。
になり、iが「"DEF"」の条件でfor文のブロック内で処理を中断してfor文の先頭に戻っています。
for文をbreakで途中終了しなかった場合に実行されるelse文
Pythonのfor文にはbreak文でfor文を終了しなかった場合のみに実行されるelse文をつくることができます。
【breakで終了しなかった場合】
lst = [ "ABC", "DEF", "GHI" ] for i in lst : if i == "DEFG" : break print( "iの値は{}です。".format( i )) else : print( "breakしなかったので処理が実行されます。" )
上記のソースの実行結果は
iの値はABCです。 iの値はDEFです。 iの値はGHIです。 breakしなかったので処理が実行されます。
でelse文が実行されています。
【breakで終了した場合】
lst = [ "ABC", "DEF", "GHI" ] for i in lst : if i == "DEF" : break print( "iの値は{}です。".format( i )) else : print( "breakしたので処理が実行されません。" )
上記のソースの実行結果は
iの値はABCです。
でelse文が実行されていません。
まとめ
Pythonのfor文はrange関数や反復可能オブジェクトを利用することで処理を繰り返し行えます。
またPythonの独特な処理としてbreak文で終了しなかった場合のみ実行されるelse文を作成することができます。