str.isdecimal()
Метод isdecimal() проверяет, состоит ли строка только из символов десятичных цифр (0–9 и эквивалентов из других систем письма, имеющих категорию Unicode «Decimal_Number»). Это самый строгий из проверочных методов на цифры.
Сигнатура
str.isdecimal()
Параметры
Метод не принимает параметров.
Возвращаемое значение
True, если строка не пустая и все её символы — десятичные цифры. Иначе — False. Дробные части, знаки, верхние/нижние индексы, римские цифры и дроби возвращают False.
Примеры использования
Пример 1. Базовые случаи.
print("9600".isdecimal())
print("3.14".isdecimal())
print("".isdecimal())
True
False
False
Пример 2. Знак числа.
Минус считается не цифрой:
print("-42".isdecimal())
print("+42".isdecimal())
False
False
Пример 3. Различие с isdigit/isnumeric.
Верхние индексы — это цифры (isdigit), но не десятичные (isdecimal):
s = "²"
print(s.isdecimal())
print(s.isdigit())
print(s.isnumeric())
False
True
True
Пример 4. Валидация ввода целого числа.
def parse_int(s):
if s.isdecimal():
return int(s)
raise ValueError(f"Не целое число: {s}")
print(parse_int("115200"))
115200
Пример 5. Цифры в других системах письма.
Арабско-индийские цифры также считаются десятичными:
print("١٢٣".isdecimal())
True
См. также
str.isdigit() — более широкий тест на цифры
str.isnumeric() — любые числовые символы
str.isalnum() — буквы и цифры
Примечание
Лицензия и источники
Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.