Как избавиться от ошибки python - Общение Python мододелов

Вопрос Как избавиться от ошибки python

Регистрация
22 Ноя 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Когда я пишу в Python'е "a=int(input())", при вводе числа принимается только целое число, а если я напишу что либо помимо числа (буквы, символы), то мне выдаёт ошибку и программа завершается. Как это исправить? Если что, я новичок в программировании.
 
Регистрация
28 Мар 2013
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
def myInput(hello, fun = int):
while True:
try:
s = input(hello)
number = fun(s)
except ValueError:
print(f"{s} не {fun.__name__}.")
continue
return number

print(myInput("Введите вещественное число: ", float))
print(myInput("Введите целое число: ", int))
print(myInput("Введите строку: ", str))

давненько я python не трогал
 
Регистрация
8 Авг 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
А когда ты это пишешь, ты понимаешь, что именно ты пишешь, или ты как обезьяна с гранатой там с этим питоном? Почему ты пишешь инструкцию конверсии ввода в целое число и удивляешься, что ввод чего-то иного, кроме целого числа, вызывает ошибку? В чем твоя логика?
 
Регистрация
21 Сен 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
Чтобы избавиться от этой ошибки, вам нужно использовать блок try-except, который перехватит ошибку ValueError при попытке преобразовать неправильный ввод в целое число: try:
a = int(input("Введите целое число: "))
print(f"Вы ввели число: {a}")
except ValueError:
print("Ошибка! Введите только целое число.") Если вам нужно повторять запрос, пока пользователь не введет правильное значение, можно использовать цикл: while True:
try:
a = int(input("Введите целое число: "))
print(f"Вы ввели число: {a}")
break # выходим из цикла при успешном вводе
except ValueError:
print("Ошибка! Пожалуйста, введите только целое число.")
 
Регистрация
28 Авг 2013
Сообщения
95
Репутация
0
Спасибо
0
Монет
0
По дефолту инпут принимает строку, Если ты пишешь инт перед инпутом, то строка преобразуется в число инт. Если строка состоит из цифр, то проблемы нет, если в ней есть буквы, то преобразовать буквы в число инт программа не может и ругается. Убери инт и ошибки не будет
 
Сверху Снизу