はじめに
この実験では、Python のループが異なる手法を用いて途中で中断されたかどうかを判断する方法を学びます。この実験では、break 文を理解し、特定の条件に基づいてループを抜けるためにどのように使用できるかに焦点を当てています。
2 つの方法を探索します。1 つは、中断する前にフラグ変数を設定する方法で、もう 1 つは else 句を使って完了を検出する方法です。最初の方法では、フラグ変数を初期化し、break 文が実行されたときに True に設定します。2 つ目の方法では、else 句を利用します。この句は、ループが break 文に遭遇せずに正常に完了した場合にのみ実行されます。この実験の最後まで進めると、Python のループが中断されたかどうかを効果的に確認し、それに応じてさまざまなシナリオを処理できるようになります。
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")
このコードでは:
- ブール型の変数
foundをFalseに初期化します。この変数がフラグとして機能します。 - 数字のリストを反復処理します。
- 5 より大きい数字を見つけた場合、
foundをTrueに設定し、その後ループを抜けます。 - ループの後、
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 文が実行されたかどうかを追跡し、ループが完全に完了したか途中で中断されたかを判断する方法を探りました。



