「notを使った条件式」は初心者がよく書きがちですが、実務では読みづらさにつながることが多いです。ここでは 悪い例(読みづらい) → 改善例(読みやすい) を具体的に示します。
よくあるリファクタ例
例1:年齢制限チェック
悪い例(notを使って反転)
if not (age < 18):
print("登録できます")
Python改善例(肯定形で書く)
if age >= 18:
print("登録できます")
Python👉 「18歳以上」という条件を直接書いた方が読みやすい。
例2:空文字チェック
悪い例
if not name == "":
print("名前が入力されています")
Python改善例
if name != "":
print("名前が入力されています")
Python👉 not A == B は冗長。!= を使う方が直感的。
例3:リストが空かどうか
悪い例
if not len(items) > 0:
print("リストが空です")
Python改善例
if len(items) == 0:
print("リストが空です")
Pythonまたは、Pythonらしく:
if not items:
print("リストが空です")
Python👉 「空リストはFalse」というPythonの仕様を活かすとシンプル。
例4:複合条件
悪い例
if not (is_holiday or is_rainy):
print("出かけよう")
Python改善例
if not is_holiday and not is_rainy:
print("出かけよう")
Python👉 「休日でもなく、雨でもない」という条件を分解すると読みやすい。
例5:フラグの反転
悪い例
if not is_active:
print("停止中です")
Python改善例
if is_active:
print("稼働中です")
else:
print("停止中です")
Python👉 「否定形」より「肯定形+else」の方が意図が伝わりやすい。
実務でのポイント
- 肯定形で書けるなら肯定形にする → 「〜ではない」より「〜である」の方が理解しやすい。
- 比較演算子を活用する →
not A == BよりA != B。 - Pythonの真偽値の性質を活かす → 空文字、空リスト、ゼロはFalse。
こうしたリファクタは「バグを減らす」よりも「読み手の理解を助ける」ために重要です。


