not は 「否定(反転)」 を行う論理演算子です。
とてもシンプル:ある条件の真偽(True/False)をひっくり返します。
基本の書き方
not 式
Python式がTrueのとき →not 式はFalse式がFalseのとき →not 式はTrue
直感メモ
not= 「〜ではない」「〜でないとき」- 例:「x が 5 ではない」→
not (x == 5)またはx != 5(※!=の方が簡潔)
truthy / falsy(重要!)
Python では条件式は厳密な True/False のみでなく 値の「真偽性」 を評価します(truthy / falsy)。
- falsy(偽とみなされる例)
False、None、0、0.0、""(空文字列)、[](空リスト)、{}(空辞書)など
- その他はほとんど truthy(真とみなされる)
つまり not "" は True(空文字列は偽なので反転して真)になります。
例題 1 — 単純な反転
flag = True
print(not flag) # => False
value = ""
print(not value) # => True (空文字列は falsy)
Python解説:flag の真偽をそのまま反転。value が空文字なので not value は True。
例題 2 — 比較式を否定する
x = 7
print(not (x > 10)) # => True (7 > 10 は False、反転して True)
Python解説:まず x > 10 が False、それを not で反転して True。
例題 3 — if と一緒に使う(よく使うパターン)
「ログインしていないときだけ処理する」みたいな時:
is_logged_in = False
if not is_logged_in:
print("ログインしてください。")
Python解説:is_logged_in が False(ログインしていない)→ not is_logged_in が True になるのでメッセージを表示。
例題 4 — and / or と組み合わせる
age = 15
has_permission = False
if not (age < 18) and not has_permission:
print("入場不可")
else:
print("入場可または要確認")
Pythonただし上の書き方は読みづらいので、実務では or / and をうまく使ったり、条件を分けて書く方が安全です。
より読みやすい例:
if age >= 18 or has_permission:
print("入場可")
else:
print("入場不可")
Python覚えておきたいコツ(読みやすさ重視)
notは強力ですが、複雑な式の否定は読みづらくなることが多い。
例:not (a and b)はnot a or not b(ド・モルガンの法則)に展開できますが、どちらが読みやすいかを考えて書く。- 括弧
()を使って、どの部分を否定しているか明確にする(特にand/orと混ざるとき)。 - 単純なら
!=や==を使って「〜でない/〜である」を直接表す方が分かりやすい場合がある。
ド・モルガンの法則(簡単に)
not (A and B)⇔(not A) or (not B)not (A or B)⇔(not A) and (not B)
例:
not (x > 0 and y > 0) # => (x <= 0) or (y <= 0) と同等
Python練習問題(手を動かして覚えよう)
x = 0のとき、not xの結果は?s = "hello"のとき、not sは何になる?age = 12のとき、「age が 18 未満でない」条件をnotを使って書いてください(式と、ifの例)。a = True,b = Falseのとき、not (a or b)と(not a) and (not b)は同じか? 実際にprintして確認してみよう。
解答
x = 0→not xはTrue(0 は falsy)。s = "hello"→not sはFalse(非空文字列は truthy)。
age = 12
if not (age < 18):
print("18歳以上です")
else:
print("18歳未満です")
Python(簡潔には if age >= 18: が良い)
4. はい、等しいです(ド・モルガンの法則)。実際に確認してみると両方とも False になります。
まとめ(初心者がまず押さえるべき点)
notは「真偽を反転」する演算子。- truthy / falsy の概念を覚えると
notの挙動が直感的になります。 - 複雑な否定は読みづらくなるので、
()で明確にしたり、別の書き方(!=や比較演算)を検討する。 and/orと混ぜるときはド・モルガンの法則を意識すると整理しやすい。

