Как я могу проверить, является ли вводимая строка числом?
Как мне проверить, является ли вводимая пользователем строка числом (например, -1, 0, 1 и т.д.)?
-1
0
1
user_input = input("Enter something:")if type(user_input) == int: print("Is a number")else: print("Not a number")
Вышесказанное не сработает, поскольку input всегда возвращает строку.
input
Переведено автоматически
Ответ 1
Просто попробуйте преобразовать ее в int, а затем отказаться, если это не сработает.
try: val = int(userInput)except ValueError: print("That's not an int!")
Смотрите Обработку исключений в официальном руководстве.
Ответ 2
Очевидно, это не сработает для отрицательных значений, но сработает для положительных чисел.
Использование isdigit()
isdigit()
if userinput.isdigit(): #do stuff
Ответ 3
Метод isnumeric() выполнит эту работу:
isnumeric()
>>>a = '123'>>>a.isnumeric()True
Но помните:
>>>a = '-1'>>>a.isnumeric()False
isnumeric() возвращает, True если все символы в строке являются числовыми символами, и есть хотя бы один символ.
True
Итак, отрицательные числа не принимаются.
Ответ 4
Для Python 3 будет работать следующее.
userInput = 0while True: try: userInput = int(input("Enter something: ")) except ValueError: print("Not an integer!") continue else: print("Yes an integer!") break