🐛 Частые ошибки с bool и сравнениями

← К оглавлению урока

⚡ Проверить перед сдачей

  1. True и False пишутся с заглавной буквы.
  2. = присваивает, == сравнивает.
  3. bool("False") даёт True, потому что строка непустая.
  4. not x > 3 читается как not (x > 3).
  5. Для сложных условий лучше ставить скобки.

Ошибка 1. Маленькие буквы в True/False

# bad.py
is_ready = true
# good.py
is_ready = True

Ошибка 2. Перепутать = и ==

# bad.py
a = 5
b = 5
print(a = b)
# good.py
a = 5
b = 5
print(a == b)

Ошибка 3. Считать строку "False" ложью

print(bool(False))    # False
print(bool("False"))  # True

Второй пример истинный, потому что "False" — это непустая строка, а не логическое значение.

Ошибка 4. Неверно прочитать not

x = 5
print(not x > 3)  # False

Сначала выполняется сравнение x > 3, затем отрицание результата.

Ошибка 5. Получить отрицательную переплату

# bad.py
used_mb = 400
total_price = 30 + (used_mb - 500) * 0.2
print(total_price)  # 10.0
# source-aligned.py
used_mb = 400
extra_mb = used_mb - 500
total_price = 30 + extra_mb * 0.2 * int(used_mb > 500)
print(total_price)  # 30.0