Разница между методами isdigit() и isdecimal() в Python заключается в том, как они интерпретируют числовые символы. 3
isdigit() возвращает True, если все символы в строке являются цифрами (и если в строке есть хотя бы один символ). 2 При этом в качестве цифр рассматриваются не только обычные цифры (0–9), но и, например, надстрочные и подстрочные символы, используемые в числовых формах Unicode. 1
isdecimal(), в свою очередь, возвращает True, если все символы в строке являются десятичными цифрами (0–9) и в строке есть хотя бы один символ. 1 Этот метод не рассматривает дробные цифры или символы, используемые в других числовых системах. 1
Ещё одно отличие заключается в том, что isdecimal() можно применять к любым строкам, а isdigit() — только к строкам, содержащим цифры ASCII или цифры из других алфавитов. 1