【Python】if notの意味を解説
ネット記事でプログラムを見ているとif not〜というif文に出会うことがあります。
このif notですが、if notという構文があるわけではありません。
このif文がどのような構造を取っているか詳しく紹介します。
if notは「if not 条件式:」を意味している
if文にnotが含まれている場合、「if not 条件式:」と書かれているはずです。
if notと読みたくなりますが、そうではなく「not 条件式」と考えるのが正しいです。
bool = False
# not演算子でboolが反転される(False⇒True)
if not bool:
print("Not boolはTrueです。")
not演算子はTrueとFalseを反転させる演算子です。
そのため「not 条件式」とすると条件式がFalseのときは反転されてTrueになります。
if notと書かれているIf文はこのように条件式を反転させるためにnot演算子を追加してあります。
not演算子はどのような時に使うと良いか
ここまでnot演算子を使った例を紹介しましたが、not演算子を使うのが必ずしも良いわけではありません。
コードが読みづらくなるのならばnot演算子の使用は避けた方が良いです。
# not演算子の使用は避けた方が良い例
num = 9
if not num == 10:
print("numは10ではありません")
# not演算子を使わないコード
num = 9
# bot演算子でなく、!=を使用
if num != 10:
print("numは10ではありません")
このサンプルコードのように!で済むのならばnot演算子は使わない方が可読性が良くなります。
not演算子を使った方が良い例
# not演算子を使った方が良い例
dic = {"a" : 1}
# in演算子を使い、Not演算子で反転
if not "b" in dic:
print("bはキーにありません")
not演算子を使うと良いのはTrueやFalseが返されるときで、Falseのときに実行させたい場合です。
サンプルコードではin演算子を使い、その返り値をnot演算子で反転させています。
このような場合はnot演算子のがスッキリとするのでおすすめです。
(not演算子を避けると、条件式=Falseといった書き方になる)