Categories: Python

Проверить является ли строка числом в Python

Часто вам бывает нужно проверить, является ли строка числом. Это происходит все время, например, при заполнении пользователем полей, при извлечении данных из базы, или при чтении файла. В зависимости от того какая задача перед вами стоит, вы можете использовать разные методы, например разбор строки регулярными выражениями или попытаться конвертировать строку и посмотреть что происходит. Но спешу вам сообщить что для упрощения этой задачи в 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
admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

1 неделя ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

1 неделя ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

1 неделя ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

1 неделя ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

1 неделя ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

1 неделя ago