Поле age_text приходит как строка и может быть "18", "" или "N/A". Вы хотите получить число или None, не скрывая неожиданные баги. Какой подход наиболее практичный в прикладной аналитике без регулярных выражений?

AВсегда делать int(age_text) без проверок и не ловить исключения.
BСначала сделать s = age_text.strip(), затем если s.isdigit()int(s), иначе вернуть None.
CДелать float(age_text) и округлять всегда.
DИспользовать eval(age_text) и считать, что данные безопасны.
Правильный ответ. Иногда лучше предварительная проверка (например, strip + isdigit), чем массовый try/except.

Разбор

Сравнивайте подходы: (1) обработка через исключения и (2) проверка условий. Если формат простой (цифры или пусто), проверка через strip() и isdigit() делает поведение явным и уменьшает количество исключений в потоке. При этом неожиданные случаи можно логировать отдельно, а не скрывать через слишком широкий except.

Проверь себя · 1/3разбор после ответа
Вы пишете функцию parse_age(age_text), которая должна принимать только неотрицательный возраст. Как лучше явно сообщить об ошибке входных данных, если пришло -5?
Тренировать Python в Telegram

Ещё вопросы по теме «Исключения и отладка»