Python でループが中断されたかどうかを確認する方法

PythonPythonBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Python のループが異なる手法を用いて途中で中断されたかどうかを判断する方法を学びます。この実験では、break 文を理解し、特定の条件に基づいてループを抜けるためにどのように使用できるかに焦点を当てています。

2 つの方法を探索します。1 つは、中断する前にフラグ変数を設定する方法で、もう 1 つは else 句を使って完了を検出する方法です。最初の方法では、フラグ変数を初期化し、break 文が実行されたときに True に設定します。2 つ目の方法では、else 句を利用します。この句は、ループが break 文に遭遇せずに正常に完了した場合にのみ実行されます。この実験の最後まで進めると、Python のループが中断されたかどうかを効果的に確認し、それに応じてさまざまなシナリオを処理できるようになります。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/booleans("Booleans") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/ControlFlowGroup -.-> python/break_continue("Break and Continue") subgraph Lab Skills python/booleans -.-> lab-559539{{"Python でループが中断されたかどうかを確認する方法"}} python/conditional_statements -.-> lab-559539{{"Python でループが中断されたかどうかを確認する方法"}} python/for_loops -.-> lab-559539{{"Python でループが中断されたかどうかを確認する方法"}} python/break_continue -.-> lab-559539{{"Python でループが中断されたかどうかを確認する方法"}} end

break 文を理解する

このステップでは、Python の break 文について学びます。break 文は、ループを途中で抜けるために使用されます。特定の条件に基づいてループの反復を停止したい場合に便利です。

まず、VS Code エディタを使用して、~/project ディレクトリに break_example.py という名前の Python ファイルを作成しましょう。

## Filename: break_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for number in numbers:
    if number > 5:
        break  ## Exit the loop when number is greater than 5
    print(number)

このコードでは:

  • 1 から 10 までの数字のリストがあります。
  • for ループを使用してリストを反復処理します。
  • ループ内で、現在の number が 5 より大きいかどうかをチェックします。
  • 数字が 5 より大きい場合、break 文を使用してループを抜けます。
  • そうでない場合、現在の number を出力します。

次に、ターミナルで以下のコマンドを使用してスクリプトを実行しましょう:

python break_example.py

以下の出力が表示されるはずです:

1
2
3
4
5

ご覧の通り、数字 6 に遭遇したときにループの実行が停止しました。なぜなら、6 は 5 より大きいからです。break 文により、その時点でループが終了しました。

break 文は for ループと while ループの両方で使用できます。特定の条件に基づいてループを抜ける方法を提供し、プログラムの流れを制御することができます。

中断する前にフラグを設定する

このステップでは、ループ内で break 文が実行されたかどうかを示すためにフラグ変数を使用する方法を学びます。ループが完全に完了したか、途中で中断されたかを知る必要がある場合に便利です。

VS Code エディタを使用して、~/project ディレクトリに flag_example.py という名前の Python ファイルを作成しましょう。

## Filename: flag_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
found = False  ## Initialize a flag variable

for number in numbers:
    if number > 5:
        found = True  ## Set the flag to True when number is greater than 5
        break  ## Exit the loop
    print(number)

if found:
    print("Found a number greater than 5")
else:
    print("No number greater than 5 was found")

このコードでは:

  • ブール型の変数 foundFalse に初期化します。この変数がフラグとして機能します。
  • 数字のリストを反復処理します。
  • 5 より大きい数字を見つけた場合、foundTrue に設定し、その後ループを抜けます。
  • ループの後、found の値をチェックします。True であれば、5 より大きい数字に遭遇してループを抜けたことを意味します。そうでなければ、ループは 5 より大きい数字を見つけずに完了したことを意味します。

次に、ターミナルで以下のコマンドを使用してスクリプトを実行しましょう:

python flag_example.py

以下の出力が表示されるはずです:

1
2
3
4
5
Found a number greater than 5

次に、numbers リストを変更して、5 より大きい数字を含まないようにしましょう:

## Filename: flag_example.py
numbers = [1, 2, 3, 4, 5]
found = False  ## Initialize a flag variable

for number in numbers:
    if number > 5:
        found = True  ## Set the flag to True when number is greater than 5
        break  ## Exit the loop
    print(number)

if found:
    print("Found a number greater than 5")
else:
    print("No number greater than 5 was found")

再度スクリプトを実行します:

python flag_example.py

以下の出力が表示されるはずです:

1
2
3
4
5
No number greater than 5 was found

この例は、フラグ変数を使用して break 文が実行されたかどうかを追跡し、ループが完全に完了したか途中で中断されたかに基づいて異なるアクションを実行できることを示しています。

else 句を使ってループの完了を検出する

このステップでは、for ループとともに else 句を使用して、ループが break 文に遭遇せずに完了したかどうかを検出する方法を学びます。これは、ループが正常に終了した場合にのみコードを実行するクリーンでエレガントな方法です。

VS Code エディタを使用して、~/project ディレクトリに else_example.py という名前の Python ファイルを作成しましょう。

## Filename: else_example.py
numbers = [1, 2, 3, 4, 5]

for number in numbers:
    if number > 5:
        print("Found a number greater than 5")
        break
    print(number)
else:
    print("No number greater than 5 was found")

このコードでは:

  • 数字のリストを反復処理します。
  • 5 より大きい数字を見つけた場合、メッセージを出力してループを抜けます。
  • else 句は for ループに関連付けられています。ループが break 文に遭遇せずに完了した場合にのみ実行されます。

次に、ターミナルで以下のコマンドを使用してスクリプトを実行しましょう:

python else_example.py

以下の出力が表示されるはずです:

1
2
3
4
5
No number greater than 5 was found

ループが 5 より大きい数字を見つけずに完了したため、else 句が実行されました。

次に、numbers リストを変更して、5 より大きい数字を含むようにしましょう:

## Filename: else_example.py
numbers = [1, 2, 3, 4, 5, 6]

for number in numbers:
    if number > 5:
        print("Found a number greater than 5")
        break
    print(number)
else:
    print("No number greater than 5 was found")

再度スクリプトを実行します:

python else_example.py

以下の出力が表示されるはずです:

1
2
3
4
5
Found a number greater than 5

この場合、ループが break 文によって終了されたため、else 句は実行されませんでした。

for ループとともに else 句を使用することで、ループが break 文によって中断されずに正常に完了したときにコードを実行する簡潔な方法が提供されます。これにより、コードがより読みやすく理解しやすくなります。

まとめ

この実験では、Python の break 文を使用して、特定の条件に基づいてループを途中で終了する方法を学びました。break 文は for ループと while ループの両方で使用でき、プログラムの流れを制御することができます。

さらに、フラグ変数を使用して、ループ内で break 文が実行されたかどうかを追跡し、ループが完全に完了したか途中で中断されたかを判断する方法を探りました。