【Python入門】ループ処理(for, while)

※当サイトではアフィリエイト広告を利用しています

Python入門 プログラミング

【Python入門】ループ処理(for, while)

2023-04-14

はじめに

Pythonでは「forループ」と「whileループ」の2種類のループ(繰り返し)処理があります。
それぞれの特徴と使い方を見ていきましょう。

forループ

forループはリストやタプル、ディクショナリー、セットなどのイテラブルオブジェクトから値を取り出して繰り返し処理を行うために使用されます。

ポイント

Pythonにおけるイテラブルオブジェクトとは、forループやリスト内包表記などの反復処理で使えるオブジェクトのことを指します。

forループの基本構文は以下のようになります。

for 変数 in イテラブルオブジェクト:
    処理

変数にはイテラブルオブジェクトから取り出した値が順番に代入されます。処理には変数を使って繰り返し処理を行うコードを書きます。
forループを終了するには、インデントを戻します。
例えば、以下のコードはリストnumbersの値を順番に取り出して表示するforループの例です。

numbers = [1, 2, 3, 4, 5]

for n in numbers:
    print(n)

inはforループでの反復処理の対象となるオブジェクトを指定するために使用されます。
forループではinの後に反復処理を行うための変数を指定します。

出力結果は下の様になります。

1
2
3
4
5

この例では、inの後に反復処理を行うための変数としてnを指定しています。リストnumbersの中の要素が1つずつ変数nに代入され、それをprint関数で出力しています。

inの後に指定するオブジェクトは、リスト以外にも文字列やタプル、辞書など様々なオブジェクトがあります。しかし、どのオブジェクトに対しても、反復処理を行うための要素が必要です。

また、forループでrange関数を使って、指定された範囲の数値を繰り返し処理することもできます。次のコードは0から4までの数値を繰り返し処理して表示するforループの例です。

for i in range(5):
    print(i)

出力結果は以下の通りです。

0
1
2
3
4

else節

for文にはelse節を使うことができます。
以下はelse節を使ったfor文の例です。

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    if fruit == "banana":
        break
    print(fruit)
else:
    print("for文は正常に終了しました。")

出力結果は以下の通りです。

apple

fruitsリストの中の要素が、fruit変数に順番に代入されます。if fruit == "banana":によって、fruit変数に代入された要素が"banana"と等しい場合には、breakによってループから抜けます。したがって、出力結果には"banana"が含まれません。最後に、else節によって、ループが正常に終了した場合に実行される処理を記述することができます。ここでは、print("for文は正常に終了しました。")によって、ループが正常に終了したことが出力されます。else節はbreakによってループから抜けた場合には実行されません。

ネストされたforループ

for文はネストされたループ(forループの中に別のforループを記述すること)もサポートしています。
以下はネストされたforループの例です。

for i in range(3):
    for j in range(2):
        print(i, j)

出力結果は以下の通りです。

0 0
0 1
1 0
1 1
2 0
2 1

for i in range(3)によって、0から2までの数値を順番にi変数に代入します。次に、for j in range(2)によって、0から1までの数値を順番にj変数に代入します。最後に、print(i, j)によって、i変数とj変数に代入された数値を出力しています。

whileループ

whileループは条件式がTrueの間、繰り返し処理を行うために使用されます。
whileループの基本構文は以下のようになります。

while 条件式:
    処理

条件式にはTrueかFalseを返す式を書きます。
処理には条件式がTrueの場合に繰り返し処理を行うコードを書きます。
whileループを終了するには条件式がFalseになるように処理を書きます。
条件式がTrueのままだと無限ループに陥ってしまいます。

例えば、以下のコードは変数iが5以下の間、iの値を表示するwhileループの例です。

i = 0

while i <= 5:
    print(i)
    i += 1

出力結果は以下の通りです。

0
1
2
3
4
5

break文

break文はループ処理を途中で終了するために使用されます。
break文を実行すると、そのループから抜け出して次の処理に移ります。

ポイント

forループやwhileループのどちらでも使用することができます。

以下のコードは変数numbersに格納された値を順番に表示するforループの例です。しかし、3の値が出力された時点でループ処理を終了するために、if文とbreak文を組み合わせています。

numbers = [1, 2, 3, 4, 5]

for n in numbers:
    if n == 3:
        break
    print(n)

出力結果は以下の通りです。

1
2

continue文

continue文はループ処理の途中で、その回の処理をスキップして次の処理に進むために使用されます。
forループやwhileループのどちらでも使用することができます。

以下のコードは、変数numbersに格納された値を順番に表示するforループの例です。
しかし、3の値が出力された時点で次の処理に進むために、if文とcontinue文を組み合わせています。

numbers = [1, 2, 3, 4, 5]

for n in numbers:
    if n == 3:
        continue
    print(n)

出力結果は以下の通りです。

1
2
4
5

おわりに

以上がPythonのループについての説明です。
本投稿を効率的なコードを書くための参考にして頂けたら嬉しいです。

こちらの記事もぜひ覗いてみてください。

最後までご覧いただきありがとうございました。

■(広告)Pythonのオススメ書籍■

-Python入門, プログラミング