Pythonでのフラグの操作
フラグは、TrueまたはFalseの2つの値のみを取ることができる特殊な変数です。フラグを使用すると、特定のものが存在しないことを確認するタスクを解決できます。例えば、リスト内に特定の値を持つ要素がないことを確認できます。
次の問題を解決してみましょう:数値のリストが与えられ、そのすべての要素が正の数であるかどうかを確認する必要があります。これを行うために、ループ開始前に真(True)に設定される特殊な変数flagを用意します。そして、ループ内で負の数が見つかった場合、その値をFalseに変更します。確認結果を知るために、ループ後に変数flagの値をコンソールに出力します:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # すべての数が正の数なので True を出力します
フラグ変数には、設定された条件を反映する名前を付けることが良い習慣です。flagをisAllPositiveに変更しましょう。また、わかりやすくするために、リスト内の1つの数値を負の数に変更します:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # 負の数が含まれるため False を出力します
反復処理するリストに多くの値があり、最初の負の数が見つかった後にループを停止する必要がある場合は、break命令を使用する必要があります:
for el in lst:
if el < 0:
isAllPositive = False
break
フラグを操作する際、ループの実行結果を知るために、フラグの値を出力する代わりに、追加のifを使用して任意のメッセージを出力することができます。
前の例を書き換えてみましょう。すべての要素が正の数の場合は'+++'を出力し、そうでない場合は'---'を出力するようにします:
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # '---' を出力します
リストが与えられます。そのすべての要素が正の数であるか確認してください。
整数が与えられます。それが素数(1とそれ自身でのみ割り切れる数)であるかどうかを確認してください。