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ループを抜けた時は実行されない


コメント