← Все вопросы
Чем None отличается от 0 и от пустой строки?
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 все «ложь», но это не делает их равными.
Ваш ответ
Войдите, чтобы ответить на вопрос.