【Python入門】for文の使い方!繰り返し(ループ)処理を行う!

Python Python

Pythonでfor文を使って、処理を繰り返す方法について書いています。
最初にfor文の説明を簡単にして、実際のコードを元に解説しています。
for文の処理をスキップするcontinueや、処理を抜けるbreakについても記載しています。

載せているコードはPythonのバージョン3.9.12で確認しました。
公式ドキュメントのチュートリアルにはこの辺に記載があります。

Pythonのfor文とは?どう書く?

for文を使うと、繰り返し処理をすることが可能です。
Pythonでのfor文は下記のように記述します。

fruits = ['apple', 'greap', 'orange', 'lemon', 'banana']

for fruit in fruits:
    print(fruit)

for文の左側には繰り返し要素がひとつずつループで入ります。
inを挟んで、右側にはリストなど、繰り返す要素を指定します。

for文の終わりにはコロン(:)を書きます。
for文の配下のコードブロックが繰り返し処理されます。

上記のコードの場合だと、最初に果物のリスト(fruits)を作成しています。
リストをfor文に指定して、リストの要素が存在する間ループ処理を行います。
左側のfruit変数にひとつずつ要素が入ってきます。

5個の要素があるので、5回繰り返されます。
処理結果としては、下記のように全ての要素が出力されます。

apple
greap
orange
lemon
banana

数値の範囲で繰り返したい場合はどうする?

数値の範囲で繰り返したい場合はrange関数を使用します。
range関数には繰り返す回数を渡します。

例えば、下記のように使います。

for number in range(10):
    print(number)

このように書くと、10回繰り返されます。
要素番号は0からになるので、0から9の値がnumberに入って出力されます。

数値の範囲の開始番号を指定するには?

指定した数から、繰り返す場合は引数を2つ渡します。

for number in range(5, 10):
    print(number)

このように書くと、5から9までの間繰り返されます。
0から数えるので、最後が9になるというところには注意が必要です。

出力結果は5から始まって、下記のようになります。

5
6
7
8
9

数値の範囲でのステップ値を変えるには?

上記までのコードで、range関数を使用した場合は1ずつカウントが上がっていくことが確認できました。
このステップ値を変えるには、range関数の3番目の引数を使用します。

for number in range(1, 12, 2):
    print(number)

このようにコードを書くと、ステップ値が2つずつ変わるようになります。
1の次は3、その次は5…といった感じです。

結果として、下記のような出力になります。

1
3
5
7
9
11

for文をスキップするcontinueについて

for文でループしている途中で、処理をスキップして次に進めることができます。
処理をスキップするときにはcontinueを使います。

例えば、下記のように使います。

for number in range(0, 10):
    if number == 4 or number == 6:
        continue
    print(number)

0から9の間、処理を繰り返します。
numberが4または6の場合にcontinueします。

continueすると、その後の処理をスキップして、次のステップに進みます。
なので「1, 2, 3…」と進んで、4なのでスキップします。

その後に6もスキップするので、上記のコードはこのように出力されます。

0
1
2
3
5
7
8
9

for文を抜けるbreakについて

ループしている途中で、処理を抜けるにはbreakを使います。
forの中でbreakしたときには、その瞬間にforを抜けます。

例えば、下記のようにします。

for number in range(0, 10):
    if number == 4:
        break
    print(number)

上記のコードでは、0から9の10回繰り返します。
4のときにbreakして処理を抜けます。

そのため、このコードの出力結果は下記のようになります。
3まで出力されて、breakで処理を抜けて終わりです。

0
1
2
3

コメント

タイトルとURLをコピーしました