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

См. также

Примечание

Лицензия и источники

Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.