Подтвердить что ты не робот

Как проверить, имеет ли строка числовое значение в Python?

Возможный дубликат:
Как проверить, является ли строка числом в Python? Python - Parse String для Float или Int

Например, я хочу проверить строку и если она не конвертируется в integer (с int()), как я могу ее обнаружить?

4b9b3361

Ответ 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