← Все вопросы
Что такое True и False в Python и почему пустые значения считаются ложью?
18
Понял, что есть булевы True/False. Но почему if []: не выполняется, а if [1]: выполняется? Список же не True и не False.
3 ответа
23
✓ Принятый ответ — помог автору
True/False — это булевы значения, «истина» и «ложь». Но в условии if Python проверяет не строго булев тип, а «истинность» любого объекта.
Правило простое: пустое = ложь, непустое = истина. Ложными считаются 0, 0.0, "", [], {}, (), None и сам False. Всё остальное — истина.
if []: # пустой список — ложь, не зайдём
print("a")
if [1]: # непустой — истина, зайдём
print("b") # выведется
Именно поэтому пишут if items: вместо if len(items) > 0: — короче и читается так же.
Даулет Хатуев вот это «пустое = ложь» прям всё разложило по полочкам, спасибо! · 7 месяцев назад
7
Пустое — ложь, непустое — истина. Это называется «истинность» (truthiness).
5
Проверить можно через bool(): bool([]) → False, bool([1]) → True.
Ваш ответ
Войдите, чтобы ответить на вопрос.