Часто вам бывает нужно проверить, является ли строка числом. Это происходит все время, например, при заполнении пользователем полей, при извлечении данных из базы, или при чтении файла. В зависимости от того какая задача перед вами стоит, вы можете использовать разные методы, например разбор строки регулярными выражениями или попытаться конвертировать строку и посмотреть что происходит. Но спешу вам сообщить что для упрощения этой задачи в Python уже есть отличная встроенная функция - isdigit(). В случае если строка является числом эта функция возвращает True. Если же не является - False.
Пример
>>> string = "306"
>>> string.isdigit()
True
>>> string = "neer"
>>> string.isdigit()
False
>>> string = "neer306"
>>> string.isdigit()
False
К сожалению функция isdigit не работает для чисел с плавающей точкой и для отрицательных чисел. Так что для такой проверки можно использовать следующую функцию, которая представляет собой комбинацию из проверки isdigit и обычного конвертирования во float:
def is_digit(string):
if string.isdigit():
return True
else:
try:
float(string)
return True
except ValueError:
return False
Проверяем:
>>>print(is_digit('neer'))
False
>>>print(is_digit('neer306'))
False
>>>print(is_digit('306'))
True
>>>print(is_digit('0.05'))
True
>>>print(is_digit('0.05abc'))
False