/
Вопросы и ответы
/
Python
/

Что такое функция isdigit в Python?

Что такое функция isdigit в Python?

4 года назад

Andrey Moshkov

Ответы

1

Метод isdigit() возвращает True, если все символы в строке являются цифрами. Если нет, возвращается False.

Синтаксис: string.isdigit()

Команда возвращает:

  • Истинно(True), если все символы в строке являются цифрами.
  • Ложь(False), если хотя бы один символ не является цифрой.

Пример:

1
2
3
4
5
s = "28212" 
print(s.isdigit()) # Ответ True

s = "Mo3 nicaG el l22er" 
print(s.isdigit()) # Ответ False

В Python надстрочные и подстрочные индексы (обычно записываемые с использованием Unicode) также считаются цифровыми символами. Следовательно, если строка содержит эти символы вместе с десятичными символами, isdigit() возвращает True.

Римские цифры, числители валют и дроби (обычно записываемые в кодировке Unicode) считаются числовыми символами, но не цифрами. Isdigit() возвращает False, если строка содержит эти символы. Чтобы проверить, является ли символ числовым или нет, вы можете использовать метод isnumeric().

2 года назад

Алёна Шереметьева

0

Метод isdigit() проверяет состоит ли строка целиком из цифр и возвращает True, если строка состоит только из цифр и False, если хоть один из символов цифрой не является:

1
2
3
4
5
x = '123456'

y = x.isdigit()

print(y) # => True

4 года назад

Владимир Устянивский

0

str.isdigit() возвращает True, если строка непустая и все её символы — цифры. Иначе возвращает False.

1
2
3
print("2026".isdigit())   # => True
print("20a6".isdigit())   # => False
print("".isdigit())       # => False

Это метод строки, его вызывают через точку: s.isdigit().

Проверить ввод пользователя

1
2
3
4
5
age = input("Возраст: ")
if age.isdigit():
    age = int(age)
else:
    print("Введите число")

Сложить цифры в строке

Частая учебная задача — найти сумму цифр в тексте:

1
2
3
4
5
6
text = "code2026python"
s = 0
for ch in text:
    if ch.isdigit():
        s += int(ch)
print(s)  # => 10

Цифры здесь 2, 0, 2 и 6, их сумма — 10. Тот же результат одной строкой: sum(int(ch) for ch in text if ch.isdigit()).

Чего isdigit не распознаёт

Строкаisdigit()Почему
"-5"Falseминус не цифра
"12.5"Falseточка не цифра
" 1"Falseпробел не цифра
"²"Trueнадстрочная двойка считается цифрой

Отрицательные и дробные числа проверяют через try:

1
2
3
4
5
6
7
8
def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        return False

print(is_number("-12.5"))  # => True

isdigit, isdecimal и isnumeric

Строкаisdecimal()isdigit()isnumeric()
"123"TrueTrueTrue
"²"FalseTrueTrue
"½"FalseFalseTrue
"٣" (арабская 3)TrueTrueTrue

Перед int(s) надёжнее проверять isdecimal(): int("²") вызовет ошибку, хотя "²".isdigit() вернёт True.

Методы строк разбирают в бесплатном курсе «Основы Python».

12 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845