Python入門【for文の使い方(繰り返し)】

こんにちは、ミナトです。

「同じ処理を繰り返し実行するにはどうすればいいの?」

このような場合はfor文を利用します。今回はPythonで繰り返し(ループ)を制御するためのfor文の使い方について紹介します。

同じ処理を繰り返し実行するにはどうすればいいの?
同じ処理を繰り返し実行するにはfor文が利用できるで!

今回はfor文について分かりやすく解説するな!

以下のような方を対象としています
  • Pythonで繰り返し処理を行う方法を知りたい
  • for文の使い方を知りたい
  • Pythonでプログラミングを学びたい

for文の使い方

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 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関数

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文の特徴は以下の通りです。

for文の特徴
  • リストやディクショナリなどイテラブルなオブジェクトに対してループ処理が実行できる
  • 要素を一つずつ取り出して処理ができる
  • continueやbreakを使うことで、ループのスキップ、中断ができる
  • for else文を利用することで全てのループが終わった後の処理を定義できる
  • range関数やenumerate関数、zip関数と組み合わせて利用できる

for文を用いた繰り返しはPythonでプログラミングを行う上で頻繁に利用しますので、使い方をしっかり覚えるようにしましょう。

最後まで読んでいただき、ありがとうございます。

この記事が、「面白いな」、「勉強になったな」という方は、ぜひ、SNSでシェアしていただけると嬉しいです。