Поле country может быть None или пустой строкой. Нужно заменить его на 'unknown' через if. Какое условие покрывает оба случая короче и идиоматичнее?

Aif country is None: country = 'unknown'
Bif not country: country = 'unknown'
Cif country == '': country = 'unknown'
Dif country == None or country == '': country = 'unknown'
Правильный ответ. not country истинно для None, пустой строки и других «пустых» значений в Python.

Разбор

Проверка if not country: срабатывает и для None, и для '', и для других falsy-значений (0, []). Сравнение country is None пропустит пустую строку. Условие if country: сработает наоборот — заменит непустые значения. Длинная связка country == None or country == '' тоже работает, но менее идиоматична: в Python с None принято сравнивать через is, а не ==, и нет смысла писать два условия там, где достаточно not country.

Проверь себя · 1/3разбор после ответа
Нужно сегментировать пользователей по orders_cnt: 0 → 'new', 1–4 → 'low', 5+ → 'high'. Какой порядок условий в цепочке if/elif/else корректный?
Тренировать Python в Telegram

Ещё вопросы по теме «Циклы и условия»