# COMMON BOOL MISTAKES
# Each block shows the wrong assumption and what Python actually does
# Read through — don't just run it top to bottom

# ─────────────────────────────────────────────
# MISTAKE 1 — Lowercase true and false
# ─────────────────────────────────────────────

# Wrong — NameError
# is_valid = true
# is_valid = false

# Right — always capitalized
is_valid = True
is_valid = False

# ─────────────────────────────────────────────
# MISTAKE 2 — Using = instead of ==
# ─────────────────────────────────────────────

age = 20

# Wrong — SyntaxError
# if age = 20:

# Right
print(age == 20)   # True — compares
print(age == 19)   # False

# = assigns, == compares — never interchangeable

# ─────────────────────────────────────────────
# MISTAKE 3 — Comparing bools unnecessarily
# ─────────────────────────────────────────────

is_valid = True

# Wrong — redundant
print(is_valid == True)   # True, but unnecessary

# Right — cleaner
print(is_valid)           # True

# Same for False
is_valid = False
print(is_valid == False)  # redundant
print(not is_valid)       # cleaner

# ─────────────────────────────────────────────
# MISTAKE 4 — Confusing and with or
# ─────────────────────────────────────────────

is_student = True
is_senior = False

print(is_student and is_senior)   # False — both must be True
print(is_student or is_senior)    # True — at least one is True

# and = ALL must be true
# or  = ANY can be true

# ─────────────────────────────────────────────
# MISTAKE 5 — not not
# ─────────────────────────────────────────────

is_banned = False

print(not is_banned)       # True — correct and clear
print(not not is_banned)   # False — works but confusing

# If you find yourself writing "not not", rethink the logic

# ─────────────────────────────────────────────
# MISTAKE 6 — Case sensitivity with in
# ─────────────────────────────────────────────

name = "Bull"

print("bull" in name)           # False — case sensitive
print("Bull" in name)           # True

# Fix — normalize before checking
print("bull" in name.lower())   # True — safe approach
