Python | not + and / or を組み合わせた実務でよく使うパターン

Python
スポンサーリンク

notand / or の組み合わせ」は、実務コードでよく出てくるけれど、初心者には少し読みにくいパターンです。ここでは よくある実務的な利用例 を整理してみます。


よく使うパターン

1. 「どちらでもない」条件

休日でもなく、雨でもないときに出社する、など。

if not (is_holiday or is_rainy):
    print("出社します")
Python
  • is_holiday or is_rainy → 「休日または雨」
  • not (...) → 「休日でもなく雨でもない」

👉 実務でよくある「両方ともFalseならTrue」パターン


2. 「両方とも満たさない」条件

ユーザーが「管理者でもなく、ログイン済みでもない」場合にアクセス拒否。

if not (is_admin and is_logged_in):
    print("アクセス拒否")
Python
  • is_admin and is_logged_in → 「管理者かつログイン済み」
  • not (...) → 「両方満たしていない」

👉 セキュリティチェックでよく使う


3. 「どちらかがFalseならTrue」条件

「有効期限が切れている」または「支払いが未完了」なら利用不可。

if not (is_valid and is_paid):
    print("利用できません")
Python
  • is_valid and is_paid → 「有効かつ支払い済み」
  • not (...) → 「どちらかが欠けている」

👉 契約や認証の判定で頻出


4. 「禁止条件の否定」

「ブラックリストに入っていない」かつ「停止フラグが立っていない」ユーザーだけ許可。

if not (is_blacklisted or is_suspended):
    print("利用可能です")
Python

👉 ブラックリストやエラーフラグのチェックでよく使う


リファクタのコツ

実務では「not + and/or」は便利ですが、読みづらくなることが多いので以下の工夫がよくされます:

  • 肯定形に書き換える
    • if not (is_holiday or is_rainy)if not is_holiday and not is_rainy
  • 変数名を工夫する
    • if not (is_blacklisted or is_suspended) より
      if is_active_user: の方が読みやすい。

✅ まとめ

  • not (A or B) → 「AでもBでもない」
  • not (A and B) → 「AとBを両方満たしていない」
  • 実務では 認証・権限チェック、エラーフラグ判定、利用可否判定 でよく使う。
  • 読みやすさのために 肯定形や変数名の工夫 が重要。
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました