Pythonのループ

投稿日: 2024年3月30日

Pythonでのループ処理は、ある条件が満たされる間、同じコードブロックを繰り返し実行する機能です。

Pythonには主に2種類のループ構文があります:forループとwhileループです。

forループ

forループは、あらかじめ定義された回数だけ繰り返し処理を行うのに使います。リストや文字列、辞書など、イテレータブル(繰り返し可能なオブジェクト)を一つずつ取り出してループの中で処理を行います。

基本的な形式

for 変数 in イテレータブル:
    # 繰り返し実行されるブロック

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

この例では、fruitsリストの各要素に対してループを行い、それぞれの要素を出力します。

for文でbreakを使った例

forループ内でbreak文を使用すると、ループから即座に脱出することができます。これは、特定の条件が満たされた場合にループの残りの部分をスキップし、ループを終了させるときに便利です。たとえば、リストの要素をループで検索して、特定の要素が見つかった時点でその他の要素の検索を中止したい場合などに使用します。

以下の例では、fruitsリスト内にある”banana”を探しています。”banana”が見つかったら、その時点でforループを終了させるためにbreakを使用しています。

fruits = ["apple", "banana", "cherry", "orange"]

for fruit in fruits:
    print(fruit)
    if fruit == "banana":
        print("バナナが見つかりました!")
        break

このコードを実行すると、”apple”と”banana”が順に出力された後、”バナナが見つかりました!”と表示され、ループが中断されます。”cherry”や”orange”は検索されず、出力されません。

for文でcontinue文を使った例

forループ内でcontinue文を使用すると、現在のループの繰り返しを中断し、ループの次の繰り返しに直ちに進むことができます。これは、ループの特定の条件下でいくつかの処理をスキップしたいが、ループ自体は継続させたい場合に便利です。

以下の例では、fruitsリスト内の各要素をループで出力しますが、”banana”はスキップします。

fruits = ["apple", "banana", "cherry", "orange"]

for fruit in fruits:
    if fruit == "banana":
        continue  # "banana"の場合は、以下のprint関数をスキップして次の繰り返しに進む
    print(fruit)

このコードを実行すると、”apple”, “cherry”, “orange”が出力されますが、”banana”は出力されません。continue文が実行されると、その時点でのループの繰り返しは中断され、次の要素に対する繰り返しが始まります。

whileループ

whileループは、ある条件がTrueの間、繰り返し処理を行います。条件がFalseになるとループから抜け出します。

基本的な形式

while 条件式:
    # 繰り返し実行されるブロック

count = 0
while count < 3:
    print("ループ中です")
    count += 1

この例では、countが3未満である間、ループが繰り返されます。ループの各繰り返しでcountが1ずつ増加し、countが3になるとループから抜け出します。

while文でbreakを使った例

whileループ内でbreak文を使用すると、ループから即座に脱出することができます。
これは、ループが無限に続く可能性がある場合や、特定の条件が満たされた時点でループを終了させたい場合に特に有効です。

while True:  # 無限ループ
    user_input = input("何か入力してください(終了するには'exit'と入力): ")
    if user_input == "exit":
        print("プログラムを終了します。")
        break  # ループから脱出
    print(f"あなたが入力したのは: {user_input}")

このプログラムでは、while Trueによって条件が常にTrueと評価されるため、無限ループが生成されます。
break文がなければ、このループはユーザーがプログラムを強制終了させるまで永遠に続きます。
user_inputが”exit”に等しいかどうかをチェックし、等しい場合にはbreak文でループを終了させます。

while文でcontinueを使った例

whileループ内でcontinue文を使用すると、その時点でのループの繰り返しを中断し、ループの条件評価に戻って次の繰り返しを開始します。
これは、ループの特定の繰り返しで特定のコードブロックをスキップしたいが、ループ自体は続行させたい場合に便利です。

count = 0

while count < 10:
    count += 1
    if count == 5:
        continue  # 5になった場合は、以下のprint関数をスキップしてループの先頭に戻る
    print(count)

このコードでは、countが1から10まで増加しますが、countが5のときはprint関数がスキップされます。
その結果、1から10までの数値が出力されますが、5は出力されません。

記事