Pythonでは、複数の条件を一度に評価するためにand
やor
を使うことが一般的です。しかし、これらの演算子を使うと、条件が増えるとコードが長くなりすぎてしまうことがあります。
そこで、Pythonの組み込み関数であるall
とany
を使うことで、より簡潔に条件判定を行うことができます。
all
は、リストなどの中身がすべてTrueであればTrueを返す関数です。一方、any
は中身に一つでもTrueがあればTrueを返します。
例えば、以下のように書くことができます。
if all([ a > 0, a % 2 == 0, a != 10, a != 100, ]):
pass
このコードは、a
が0より大きく、2で割り切れ、10と100ではない場合に、何かの処理を行います。
しかし、all
やany
を使うときには注意が必要です。all
を使った場合、一旦リストを生成するため、すべての条件が評価されます。これは、and
を使った場合とは異なり、一番左の条件がFalseなら、右の条件は評価されずにFalseであると評価されます。
したがって、以下のようなケースでは問題が起こります。
if a is not None and a > 0:
pass
これを以下のように書き換えてしまうと、エラーが起きてしまいます。
if all([ a is not None, a > 0, ]):
pass
このような場合、None
判定だけ出すのは少し変な気がします。そのため、以下のように書くことをおすすめします。
if all([ a is not None, b is not None, ]) and all([ a > 100, b > 1000, ]):
pass
以上が、Pythonのall
とany
を使って条件判定を行う方法についての説明です。これらの関数を使うことで、より簡潔で読みやすいコードを書くことができます。.