Когда я пишу в Python'е "a=int(input())", при вводе числа принимается только целое число, а если я напишу что либо помимо числа (буквы, символы), то мне выдаёт ошибку и программа завершается. Как это исправить? Если что, я новичок в программировании.
def myInput(hello, fun = int):
while True:
try:
s = input(hello)
number = fun(s)
except ValueError:
print(f"{s} не {fun.__name__}."
continue
return number
А когда ты это пишешь, ты понимаешь, что именно ты пишешь, или ты как обезьяна с гранатой там с этим питоном? Почему ты пишешь инструкцию конверсии ввода в целое число и удивляешься, что ввод чего-то иного, кроме целого числа, вызывает ошибку? В чем твоя логика?
Чтобы избавиться от этой ошибки, вам нужно использовать блок 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("Ошибка! Пожалуйста, введите только целое число."
По дефолту инпут принимает строку, Если ты пишешь инт перед инпутом, то строка преобразуется в число инт. Если строка состоит из цифр, то проблемы нет, если в ней есть буквы, то преобразовать буквы в число инт программа не может и ругается. Убери инт и ошибки не будет