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

Int(input()) крашит при вводе всего, кроме числа

Ярослав Маслов Ученик (108), на голосовании 4 дня назад
Народ, может подсказать кто. Такая проблема: Я должен получить число через input для дальнейших вычислений, но если написать не число, то прога крашится.
Подробнее:
Изначально мой input считается как строка, и допустим если я пропишу >>> x *= 2 print(x) , то строка будет умножаться на 2.
Я ставлю int перед input: >>> x = int(input()) и если при этом пользователь напишет любое значение, которое не является числом, то оно крашится.
Вот я и ломаю голову
Голосование за лучший ответ
YT_VolkOFF Оракул (95421) 1 месяц назад
Попробуйте использовать try/except для обработки ошибок:
try:
x = int(input())
except ValueError:
print("Введено не число. Повторите попытку.")
Это позволит обработать ошибку и вывести сообщение пользователю, если он введёт не число.
ㅤㅤㅤㅤㅤㅤㅤㅤnullㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ Мастер (1992) 1 месяц назад
Поздравляю, ты столкнулся с исключениями.

Есть два способа:
  1. Применять input(), проверять isdigit() и при положительном результате применять int()
  2. Использовать try/except.
Юрий Семыкин Искусственный Интеллект (207747) 1 месяц назад
int(input()) должно вызывать исключение если введено не число, и это правильно! Кушайте что дают! Голову ломать не надо.

 try: 
x=int(input('n='))
print('введено число')
except:
print('введено НЕ число')
Сергей Просветленный (43106) 1 месяц назад
 try:  
x = input()
if "." in x:
raise ValueError("float") # введено что-то с точкой
x = int(x)
except ValueError as e:
e = {["ты че ввел-то, а?!", "дробное число?"][str(e) == "float"]
print(f"Ошибка: {e}")
else:
print(f"Число: {x}")
Похожие вопросы