Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как избавиться от ошибки Python

Максим Попов Ученик (96), открыт 3 часа назад
Когда я пишу в Python'е "a=int(input())", при вводе числа принимается только целое число, а если я напишу что либо помимо числа (буквы, символы), то мне выдаёт ошибку и программа завершается. Как это исправить? Если что, я новичок в программировании.
6 ответов
tema4723 Гуру (4643) 3 часа назад
ну так у тебя int - целое число же, разве нет
Максим ПоповУченик (96) 3 часа назад
ну так, а мне нужно, чтобы засчитывало только целое число, то есть если человек вводит что либо кроме числа, ему выдавало не ошибку, а писало например "Это не число. Напиши снова"
tema4723 Гуру (4643) Максим Попов, xd так питон работает так как работает, а не так как тебе нужно, тут питон засчитывает ток числа целые
Кататься? Саночки возить!! Мастер (1065) 3 часа назад
По дефолту инпут принимает строку, Если ты пишешь инт перед инпутом, то строка преобразуется в число инт. Если строка состоит из цифр, то проблемы нет, если в ней есть буквы, то преобразовать буквы в число инт программа не может и ругается. Убери инт и ошибки не будет
Максим ПоповУченик (96) 3 часа назад
а если мне нужно чтобы переменная значила именно число, а при вводе чего нибудь другого, выдавало не ошибку а например надпись "попробуй ещё раз"
Кататься? Саночки возить!! Мастер (1065) Максим Попов, тогда тебе нужно использовать другие инструменты. Просто инпутом ты максимум можешь вывести в консоль чтобы не вводили ничего кроме цифр - a=int(input('ВВОДИ ТОЛЬКО ЦЫФРЫ'))
Максим ПоповУченик (96) 3 часа назад
ок, а ещё вопросик: можно в "if" использовать "if a=int", или что то этого рода?
Кататься? Саночки возить!! Мастер (1065) Максим Попов, именно так нельзя, но чтото такого рода можно, только смысла это не имеет в твоей ситуации, ты же и так знаешь какого типа твои данные, если int() ставишь, то они интовые, если не ставишь, то стринговые
Айран Просветленный (27555) 3 часа назад
 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 не трогал
Jurijus Zaksas Искусственный Интеллект (460014) 2 часа назад
А когда ты это пишешь, ты понимаешь, что именно ты пишешь, или ты как обезьяна с гранатой там с этим питоном? Почему ты пишешь инструкцию конверсии ввода в целое число и удивляешься, что ввод чего-то иного, кроме целого числа, вызывает ошибку? В чем твоя логика?
ᅠ ᅠ Гуру (3965) 2 часа назад
Так ты ведь и указал целочисленный тип данных.
S.H.I. Оракул (71883) 2 часа назад
Чтобы избавиться от этой ошибки, вам нужно использовать блок 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("Ошибка! Пожалуйста, введите только целое число.")
Похожие вопросы