Я пытаюсь написать функцию Python, которая запрашивает ввод целого числа больше 1 и возвращает или печатает введенное значение.
Например, когда выполняется код:
Случай ошибки 1:
Введите целое число больше 1: 1
Вывод: введите число больше 1:
Случай ошибки 2:
Введите целое число больше 1: abc345
Вывод: Пожалуйста, введите только целочисленные значения:
Если это просто для обработки ошибки 1, это просто, мы можем просто использовать цикл while.Но если учесть случай нецелочисленного ввода, мой код всегда дает сбой.
Вот моя функция:
def mult_digits():
x = input("Enter an integer greater than 1: ")
while type(x) is not int:
try:
while int(x) <= 1:
x = input("Please enter a number greater than 1: ")
x = int(x)
except ValueError:
x = input("Please enter integer values only: ")
x = int(x)
print(f"Yes, you have entered {x}.")
Проблема с моим кодом заключается в том, что int ("a")приведет к неверному литералу для int () с ошибкой base 10.Поскольку функция input () всегда возвращает строку, и нам нужно проверить, можно ли преобразовать строку в целое число, нам нужна функция int (), но именно в этом и заключается проблема.
Iперепробовал много разных вариантов кода, включая использование цикла for для сканирования входного значения на наличие любых нецелочисленных символов, но он не настолько эффективен и все еще дает сбой.Я также попробовал цикл while, который закончился созданием бесконечного цикла.
Может кто-нибудь помочь?Есть ли лучший способ написать эту функцию?Я действительно ценю это, спасибо!