Как проверить, имеет ли строка числовое значение в Python?
Возможный дубликат:
Как проверить, является ли строка числом в Python? Python - Parse String для Float или Int
Например, я хочу проверить строку и если она не конвертируется в integer (с int()
), как я могу ее обнаружить?
Ответы
Ответ 1
Используйте метод .isdigit()
:
>>> '123'.isdigit()
True
>>> '1a23'.isdigit()
False
Указание документации:
Возвращает true, если все символы в строке являются цифрами и есть хотя бы один символ, иначе false.
Для строк unicode
или строк Python 3 вам нужно будет использовать более точное определение и использовать unicode.isdecimal()
/str.isdecimal()
; не все символы Unicode интерпретируются как десятичные числа. U + 00B2 SUPERSCRIPT 2 - это цифра, но не десятичная, например.
Ответ 2
Вы всегда можете try
его:
try:
a = int(yourstring)
except ValueError:
print "can't convert"
Обратите внимание, что этот метод превосходит isdigit
, если вы хотите узнать, можете ли вы преобразовать строку в число с плавающей запятой, используя float