Как избавиться от ошибки Python
Когда я пишу в Python'е "a=int(input())", при вводе числа принимается только целое число, а если я напишу что либо помимо числа (буквы, символы), то мне выдаёт ошибку и программа завершается. Как это исправить? Если что, я новичок в программировании.
Чтобы избавиться от этой ошибки, вам нужно использовать блок 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("Ошибка! Пожалуйста, введите только целое число.")
Так ты ведь и указал целочисленный тип данных.
А когда ты это пишешь, ты понимаешь, что именно ты пишешь, или ты как обезьяна с гранатой там с этим питоном? Почему ты пишешь инструкцию конверсии ввода в целое число и удивляешься, что ввод чего-то иного, кроме целого числа, вызывает ошибку? В чем твоя логика?
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 не трогал
По дефолту инпут принимает строку, Если ты пишешь инт перед инпутом, то строка преобразуется в число инт. Если строка состоит из цифр, то проблемы нет, если в ней есть буквы, то преобразовать буквы в число инт программа не может и ругается. Убери инт и ошибки не будет