#python
#python
Вопрос:
Как мне узнать, является ли ввод моего пользователя числом?
input = raw_input()
if input = "NUMBER":
do this
else:
do this
Что такое «ЧИСЛО» в данном случае?
Ответ №1:
Зависит от того, что вы подразумеваете под «числом». Если любое число с плавающей запятой подходит, вы можете использовать
s = raw_input()
try:
x = float(s)
except ValueError:
# no number
else:
# number
Комментарии:
1. Если вы хотите также поддерживать комплексные числа, используйте
complex()
. Для простых целых чиселint()
должно быть достаточно.
Ответ №2:
Если вы тестируете на наличие целых чисел, вы можете использовать функцию isdigit:
x = "0042"
x.isdigit()
Верно
Комментарии:
1. Как ни печально,
x = "0.5"; x.isdigit() == False
. Не подходит для чисел с плавающей точкой.2. Также не работает для отрицательных чисел и оснований, отличных от 10.
Ответ №3:
string = raw_input(‘пожалуйста, введите число:’)
Проверить, является ли символ цифрой, несложно, как только вы поймете, что символы — это просто номера кода ASCII. Символ ‘0’ — это ASCII-код 48, а символ ‘9’ — это ASCII-код 57. ‘1’-‘8’ находятся между ними. Таким образом, вы можете проверить, является ли конкретный символ цифрой, написав:
validNumber=False
в то время как недопустимый номер:
string = raw_input(‘пожалуйста, введите число:’)
i= 0
validNumber=True
в то время как я
если нет (строка [i]>=’0′ и строка[i]<=’9′):
validNumber=False
print ‘Вы ввели недопустимое число. Пожалуйста, попробуйте еще раз ‘
разрыв
i=i 1
Ответ №4:
Ответ, который я нашел в другом месте на StackOverflow [я забыл где], дал следующий код для проверки, является ли что-то числом:
#This checks to see if input is a number
def is_number(s):
try:
float(s)
return True
except ValueError:
return False