← Все вопросы

Зачем нужен bool() и что в Python считается False?

Задан 7 месяцев назад534 просмотров3 ответа
12

Видел bool(x) и if x:. Что именно превращается в False? Только 0 и None или есть ещё?

3 ответа

25
✓ Принятый ответ — помог автору

Ложными (falsy) в Python считаются:

  • False, None
  • любой нуль: 0, 0.0, 0j
  • пустые коллекции: '', [], (), {}, set(), range(0)

Всё остальное — истинно. bool(x) как раз показывает, как объект поведёт себя в if:

print(bool(0))      # False
print(bool(''))     # False
print(bool('0'))    # True!  строка непустая
print(bool([0]))    # True   список непустой

Обрати внимание на '0' и [0] — это НЕ пустые, поэтому True.

Никита Лазарёнок Вот '0' это классическая ловушка — строка из символа ноль непустая · 7 месяцев назад
9

False: 0, None, '', [], {}, (), set(). Остальное True.

3

bool() явно приводит к True/False, но в if приведение и так происходит само.

Ваш ответ

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