はじめに
Pythonでは「forループ」と「whileループ」の2種類のループ(繰り返し)処理があります。
それぞれの特徴と使い方を見ていきましょう。
forループ
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文を実行すると、そのループから抜け出して次の処理に移ります。
以下のコードは変数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のオススメ書籍■