Как сделать так, чтобы при наборе текста в данном случае выдавалось "Incorrect valuе"?
a = input('Enter the right answer: ')
b = int(a)
b != str(a)
if b == 440:
print('Correct answer')
elif b == str(a):
print("Incorrect value")
else:
print('Incorrect answer')
Как сделать так, чтобы при наборе, например, букв выдавался ответ incorrect value? Как будто онлайн тест, в котором есть только один вариант ответа в числовом виде. Если вводишь текст - то пусть отвечает "неверное значение", а при неверном числовом - "неверный ответ".
Ответы (3 шт):
можно такую проверку на треш вместо числа использовать:
a = input('Enter the right answer: ')
try:
answer = int(a)
if answer == 440:
print("corrent answer")
else:
print("incorrect answer")
except:
print("incorrent value")
если происходит ошибка при преобразовании строки в число, то происходит ошибка (срабатывает исключение) и выводится соответствующий текст
if input('Enter the right answer: ').isnumeric():
print('Correct value')
else:
print('Incorrect value')
str.isnumeric() - Возвращает флаг что строка содержит ли только числа.
Вот решение, с проверкой и отрицательных чисел тоже :)
a = input('Enter the right answer: ')
if ans.isdigit() or ans.replace('-', '', 1).isdigit():
if int(ans)=='440': print('Correct answer')
else: print('Incorrect answer')
else: print("Incorrect value")
В данном случае метод .isdigit() проверяет, введены ли в строке только числа или нет (возвращает True / False).