2014-11-06 2 views
-1

Например, в этой программе я использовал try и except, чтобы попытаться ее проверить, но это не сработает; есть идеи? Я хочу убедиться, что вход не является строкой.Как я могу проверить, чтобы вводить только цифры в Python?

userGuess = int(input("%s %s %s = ?\n" % (num1, op, num2))) 
try: 
    validation = int(userGuess) 
except ValueError: 
    print("You have not entered a number!") 
+0

положить пользователь догадка в попытке ... удалить строку проверки ... положить все это в то время как петля –

+0

, как вы говорите не работает? что вы ожидаете от этого? – Kasramvd

+0

Почему бы не использовать 'isdigit()' – Beginner

ответ

0

Теперь он должен работать

Вы получали исключение до попытки, как вы уже пытались преобразовать входной Hte в междунар.

userGuess = input("%s %s %s = ?\n" % (num1, op, num2)) 
try: 
    validation = int(userGuess) 
except ValueError: 
    print("You have not entered a number!") 

Но обычная практика больше похожа на это:

try: 
    userGuess = int(input('%s %s %s = ?\n' % (num1, op, num2))) 
except ValueError: 
    raise Exception('You have not entered a number!') 
+2

Я не понимаю ваш пример обычной практики. Нет необходимости импортировать 'Exception', и поскольку' input' возвращает строку, я не уверен, что может вызвать 'ValueError'. – DSM

+0

Позвольте мне попробовать еще раз. Строка 'from exceptions import Exception' не делает ничего. В вашем исходном коде не было 'int', и поэтому не было никакого способа создать исключение, и это было то, о чем я был озадачен. И довольно вероятно, что OP использует Python 3, потому что это то, как OP помечен вопросом. – DSM

+0

Я не был тем, кто вас ниспровергал, и это, конечно, неверно, что 'from exceptions import Exception' является обычной практикой. – DSM

Смежные вопросы