str.isdigit() возвращает True, если строка непустая и все её символы относятся к цифрам Unicode. Это не полноценная проверка числа: знак минус, точка и пробелы дадут False.
Что делает метод isdigit() у строк?
str.isdigit() возвращает True, если строка непустая и все её символы относятся к цифрам Unicode. Это не полноценная проверка числа: знак минус, точка и пробелы дадут False.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
str.isdigit() возвращает True, если строка непустая и все её символы относятся к цифрам Unicode. Это не полноценная проверка числа: знак минус, точка и пробелы дадут False.
Примеры: '123'.isdigit() истинно, ''.isdigit() и '-12'.isdigit() ложны. Некоторые символы вроде надстрочной двойки также считаются цифрами, хотя int() не принимает их в обычной записи целого. Для проверки возможности преобразования часто лучше выполнить int(text) с обработкой ValueError. Если допустимы только ASCII-цифры, это ограничение нужно проверять отдельно.