Экспериментально убедитесь в истинности утверждения: «Функции int() и float() работают без ошибок, если введённая строка состоит только из цифр».
Функция input() возвращает введённые символы как строку. Поэтому после ввода, например, значение input() — строка ', а не готовое число. Проверим преобразование этой строки в целое и вещественное число:
s = input()
print(int(s))
print(float(s))
Введём и нажмём Enter. Первая функция распознаёт запись целого числа и печатает . Вторая распознаёт ту же последовательность цифр как вещественное число и печатает . Ошибки нет ни в одном случае. Такой же опыт можно повторить со строкой ': результаты будут и .
Условие о цифрах относится к содержимому строки. Если в неё попадают буквы, например ', ни int(', ни float(' не могут преобразовать всю строку в число и возникает ошибка ValueError. При записи ' функция float() работает, но int() уже не подходит: десятичная точка не является цифрой целого числа. Это уточняет, почему утверждение сформулировано именно для строк, состоящих только из цифр.
Следовательно, проведённые примеры подтверждают утверждение для обычной непустой записи целого неотрицательного числа.
Для строки ': int(' даёт , а float(' даёт ; обе функции работают без ошибки.
