Python | not 演算子

Python
スポンサーリンク

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(偽とみなされる例)
    • FalseNone00.0""(空文字列)、[](空リスト)、{}(空辞書)など
  • その他はほとんど truthy(真とみなされる)

つまり not ""True(空文字列は偽なので反転して真)になります。


例題 1 — 単純な反転

flag = True
print(not flag)   # => False

value = ""
print(not value)  # => True (空文字列は falsy)
Python

解説:flag の真偽をそのまま反転。value が空文字なので not valueTrue


例題 2 — 比較式を否定する

x = 7
print(not (x > 10))   # => True (7 > 10 は False、反転して True)
Python

解説:まず x > 10False、それを not で反転して True


例題 3 — if と一緒に使う(よく使うパターン)

「ログインしていないときだけ処理する」みたいな時:

is_logged_in = False

if not is_logged_in:
    print("ログインしてください。")
Python

解説:is_logged_inFalse(ログインしていない)→ not is_logged_inTrue になるのでメッセージを表示。


例題 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

練習問題(手を動かして覚えよう)

  1. x = 0 のとき、not x の結果は?
  2. s = "hello" のとき、not s は何になる?
  3. age = 12 のとき、「age が 18 未満でない」条件を not を使って書いてください(式と、if の例)。
  4. a = True, b = False のとき、not (a or b)(not a) and (not b) は同じか? 実際に print して確認してみよう。

解答

  1. x = 0not xTrue(0 は falsy)。
  2. s = "hello"not sFalse(非空文字列は truthy)。
age = 12
if not (age < 18):
    print("18歳以上です")
else:
    print("18歳未満です")
Python

(簡潔には if age >= 18: が良い)
4. はい、等しいです(ド・モルガンの法則)。実際に確認してみると両方とも False になります。


まとめ(初心者がまず押さえるべき点)

  • not は「真偽を反転」する演算子。
  • truthy / falsy の概念を覚えると not の挙動が直感的になります。
  • 複雑な否定は読みづらくなるので、() で明確にしたり、別の書き方(!= や比較演算)を検討する。
  • and / or と混ぜるときはド・モルガンの法則を意識すると整理しやすい。
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました