← Все вопросы

Чем None отличается от 0 и от пустой строки?

Задан 19 месяцев назад941 просмотров2 ответа
16

None, 0 и '' — вроде все означают «ничего/пусто». В чём тогда разница между ними?

2 ответа

21

Они разные по смыслу и по типу, хотя в if все считаются «ложью».

  • None — «значения нет вообще» (тип NoneType).
  • 0 — это число, конкретное значение ноль (тип int).
  • '' — это строка, просто пустая (тип str).
print(None == 0)   # False
print(0 == "")     # False
print(type(None), type(0), type(""))

Разница важна на практике: например, возраст 0 — это валидный ответ «ноль лет», а None — «возраст не указали». Путать их нельзя.

Дмитрий Бутырев пример с возрастом прям в точку, теперь понятно зачем None отдельно · 18 месяцев назад
9

Разные типы: None — отсутствие значения, 0 — число, '' — строка. В if все «ложь», но это не делает их равными.

Ваш ответ

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