Python Проверка, является ли строка числом
В следующем примере создаётся пользовательская функцияis_number(), чтобы определить, является ли строка числом:
Пример (Python 3.0+)
# -*- coding: UTF-8 -*-
# Имя файла : test.py
# автор : www.example.com
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
# Тестовые строки и числа
print(is_number('foo')) # False
print(is_number('1')) # True
print(is_number('1.3')) # True
print(is_number('-1.37')) # True
print(is_number('1e3')) # True
# Проверка Unicode
# Арабская 5
print(is_number('٥')) # True
# Тайская 2
print(is_number('๒')) # True
# Китайские цифры
print(is_number('four')) # True
# Символ авторского права
print(is_number('©')) # False
Мы также можем использовать вложенные операторы if, чтобы добиться этого:
При выполнении приведенного выше кода выводится следующий результат:
False True True True True True True True False
Другие методы
Python isdigit() Метод проверяет, состоит ли строка только из цифр.
Python isnumeric() Метод проверяет, состоит ли строка только из цифр. Этот метод предназначен только для объектов unicode.
Другие расширения
Python3 Примеры