こんにちは、ミナトです。
「同じ処理を繰り返し実行するにはどうすればいいの?」
このような場合はfor文を利用します。今回はPythonで繰り返し(ループ)を制御するためのfor文の使い方について紹介します。


今回はfor文について分かりやすく解説するな!
- Pythonで繰り返し処理を行う方法を知りたい
- for文の使い方を知りたい
- Pythonでプログラミングを学びたい
目次
for文の使い方
for文を利用することでリストやディクショナリから要素を一つずつ取り出して、繰り返し書りを実行できます。
リストの繰り返し
まずはリストの繰り返しから見ていきましょう。
以下のようにfor文を定義することで、リストから要素を一つずつ取り出して、繰り返し処理を実行できます。
処理はリストの要素数分繰り返し実行されます。
各ループでは繰り返し変数に要素が格納され、ループ処理内で利用できます。以下コードを書きながら動きを確認してみましょう。
for 繰り返し変数 in リスト:
ループ内で実行する処理ブロック
以下の例ではリストl
から要素を順番に取り出し、要素数の計5回ループが実行されます。
ループ処理の中では繰り返し変数i
に格納された値を出力しています。
l = [1, 2, 3, 4, 5]
for i in l:
print(i)
## 出力
1
2
3
4
5
for文は文字列に対しても利用できます。
s = 'hello'
for i in s:
print(i)
## 出力
h
e
l
l
o
for文とbreak文
for文の中でbreak文を利用すると処理を途中で中断できます。
以下の例ではi = 3
の時に処理をbreakで中断してるため、3以降が出力されません。
l = [1, 2, 3, 4, 5]
for i in l:
if i == 3:
break
print(i)
## 出力
1
2
for文とcontinue文
for文の中でcontinue文を利用するとそのループをスキップできます。
以下の例ではi = 3
の時に処理をcontinueでスキップしてるため、3が出力されません。
l = [1, 2, 3, 4, 5]
for i in l:
if i == 3:
continue
print(i)
## 出力
1
2
4
5
for文とelse文
for else文を定義すると全てのループが終わった後の処理を定義できます。
for 繰り返し変数 in リスト:
ループ内で実行する処理ブロック
else:
全てのループが終わった後の処理
l = [1, 2, 3, 4, 5]
for i in l:
print(i)
else:
print('繰り返しが終了しました')
## 出力
1
2
3
4
5
繰り返しが終了しました
また、途中で処理をbreakした場合はelse文は実行されないため注意してください。
l = [1, 2, 3, 4, 5]
for i in l:
if i == 3:
break
print(i)
else:
print('繰り返しが終了しました')
## 出力
1
2
range関数を使った繰り返し
続いて少し応用的な内容としてfor文でよく利用するrange関数について紹介します。
例えば10回繰り返し処理を行いたいという場合、range関数を使うと以下のように記述できるので、コードが非常にスッキリします。
range(開始位置, 終了位置, ステップ数)
for i in range(10):
print(i)
## 出力
1
2
3
4
5
6
7
8
9
range関数では開始位置を指定することもできます。
for i in range(5, 10):
print(i)
## 出力
5
6
7
8
9
さらにステップを指定して、値をn個飛ばしで繰り返し取得することも可能です。
for i in range(0, 10, 2):
print(i)
## 出力
0
2
4
6
8
enumerate関数を使った繰り返し
forループの中でリストの要素と同時にインデックス番号を取得したりという場合があります。
そんな時はenumerate関数が利用できます。
fruits = ['Apple', 'Banana', 'Orange']
for index, fruit in enumerate(fruits):
print(f'index: {index}, fruit: {fruit}')
## 出力
index: 0, fruit: Apple
index: 1, fruit: Banana
index: 2, fruit: Orange
zip関数を使った繰り返し
forループの中で複数のリストから要素を同時に取得したいという場合は、zip()関数を利用できます。
weeks = ['Sun', 'Mon', 'Tue']
lunches = ['Curry', 'Hamburger', 'Soba']
drinks = ['Coffee', 'Cola', 'Tea']
for w, l, d in zip(weeks, lunches, drinks):
print(f'week: {w}, lunch: {l}, drink: {d}')
## 出力
week: Sun, lunch: Curry, drink: Coffee
week: Mon, lunch: Hamburger, drink: Cola
week: Tue, lunch: Soba, drink: Tea
ディクショナリの繰り返し
リストだけでなくディクショナリもfor文でループ処理を実行できます。
d = {'a': 'Apple', 'b': 'Banana', 'c': 'Orange'}
for k in d:
print(k)
## 出力
a
b
c
上記のように普通にfor文を記述するとディクショナリのキーのみが取得されます。
キーと値の両方を取得するためには変数.items()
を利用します。
d = {'a': 'Apple', 'b': 'Banana', 'c': 'Orange'}
for k, v in d.items():
print(f'{k} => {v}')
## 出力
a => Apple
b => Banana
c => Orange
まとめ
Pythonで繰り返し(ループ)を制御するためにはfor文が利用できます。
for文の特徴は以下の通りです。
- リストやディクショナリなどイテラブルなオブジェクトに対してループ処理が実行できる
- 要素を一つずつ取り出して処理ができる
- continueやbreakを使うことで、ループのスキップ、中断ができる
- for else文を利用することで全てのループが終わった後の処理を定義できる
- range関数やenumerate関数、zip関数と組み合わせて利用できる
for文を用いた繰り返しはPythonでプログラミングを行う上で頻繁に利用しますので、使い方をしっかり覚えるようにしましょう。
最後まで読んでいただき、ありがとうございます。
この記事が、「面白いな」、「勉強になったな」という方は、ぜひ、SNSでシェアしていただけると嬉しいです。