← Все вопросы

Что такое True и False в Python и почему пустые значения считаются ложью?

Задан 8 месяцев назад761 просмотров3 ответа
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.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект