Pythonでは、変数がNoneの場合、その文字列表現はブランクではなく’None’という文字列となります。しかし、Noneの場合にブランクにしたい場合があります。そのような場合、以下のように書くことができます。
if s is None:
s = ""
しかし、これは少々面倒です。そこで、Pythonのor演算子を活用することで、より簡潔に書くことができます。or演算子は、左側がFalseの場合に右側の値を返す性質があります。Pythonでは、NoneはFalseと評価されます。したがって、以下のように書くことで、変数がNoneの場合にブランクを設定することが可能です。
s = None
text = s or ""
このように書くことで、変数がNoneの場合はor演算子の右側のブランクが採用されます。
また、ブランク自身も論理演算上ではFalseと評価されるため、これを利用すると逆、つまりブランクの場合はNoneにする、ということも可能です。
s = ""
text = s or None
このテクニックはリストや整数型を想定した変数など、様々な場面で応用が効きます。例えば、リストかNoneが入っている変数に対してfor文を記述した場合、その変数がNoneの場合だとエラーとなります。しかし、以下のようにor演算子を使うことで対処することが可能です。
for val in (values or []):
pass
以上、PythonでNoneとブランクを扱う方法について解説しました。このテクニックを活用することで、Pythonのコードをより簡潔に、そして効率的に書くことができます。