Ошибка 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