Python3で色々な処理をしたりしてましたが、実はこれまで体系的な文法知識の整理をしていませんでした。新年度になって職場に新しい人も入ってきたので、私も心機一転し基礎的な所からおさらいしてみようと思います。
Contents
Python3におけるfor文の基本文法
Pythonのfor文は、シーケンス型のオブジェクト(*1)に対して反復処理が行われます。反復処理の順番はシーケンス型オブジェクトの要素の並び順のとおりです。
(*1)リスト、タプル、文字列、rangeオブジェクト
具体的には以下の様になります。
for 変数 in シーケンス型オブジェクト: 繰り返し行う処理
リストに対するforループ
リストの各要素を変数eに読み出して、一つずつ処理を行うイメージです。
for e in ['blue','yellow','red']: print(e) blue yellow red
タプルに対するforループ
リスト(‘[]’)だけでなくタプル(‘()’)でも同様に扱えます。
for e in ('blue','yellow','red'): print(e) blue yellow red
文字列に対するforループ
文字列を一文字ずつ変数eに読み出して個別に処理します。
for e in 'blue,yellow,red': print(e) b l u e , y e l l o w , r e d
rangeオブジェクトに対するforループ
rangeオブジェクトに対するforループは以下のような形になります。
for e in range(5): print(e) 0 1 2 3 4
for e in range(1,5): print(e) 1 2 3 4
for e in range(1,10,2): print(e) 1 3 5 7 9
continueとbreak
continueとbreakはC言語と同様の動きをします。
- continue・・・このループの処理をスキップし、次のループの処理を先頭から実施する
- break・・・一番内側のループを抜ける(以降のループの処理は行わない)
forループ中にcontinue文がある場合の動作例は以下のとおりです。
for e in range(5): if e == 2: continue print(e) 0 1 3 4
forループ中にbreak文がある場合の動作例は以下のとおりです。
for e in range(5): if e == 2: break print(e) 0 1
forループの中のelse節
これは、改めて勉強するまで知らなかったのですが、forループにもelse節を持たせることが出来ます。forループの中のelse節はforループの最後に一回だけ実行したい処理を記述することが出来ます。
for 変数 in シーケンス型オブジェクト: 繰り返し行う処理 else: ループの最後に行う処理
for e in range(5): print(e) else: print("End!") 0 1 2 3 4 End!
なお、break文でforループを終了した時はelse節の処理は実行されません。
for e in range(5): if e == 2: break print(e) else: print("End!") 0 1
まとめ
Python3のfor文について簡単にまとめると以下の様になるかと思います。
- Pythonのfor文はシーケンス型のオブジェクトと併せて使用する
- シーケンス型のオブジェクトにはリスト、タプル、文字列、rangeオブジェクトがある
- continue文でループを一回スキップ、break文でループを抜けることができる
- forループのelse節には最後に一回だけ実行したい処理を書く。ただし、breakでforループを抜けた時は実行されない
コメント