← Все вопросы
Как проверить, что строка состоит только из цифр?
13
Проверяю ввод: хочу убедиться, что пользователь ввёл число, а не буквы. Есть ли готовый метод?
3 ответа
17
Осторожно с краевыми случаями: isdigit() вернёт False для отрицательных чисел ("-5" — там минус) и для дробей ("3.14" — там точка). Пустая строка "".isdigit() тоже False. Если нужно проверить, что строка вообще приводится к числу (включая знак и дробь), надёжнее так:
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
Лев Степанов лучший ответ, жаль не принят · 15 месяцев назад
Галина Попова вот про минус и точку прям спасли, у меня баг из-за этого был 🙏 · 15 месяцев назад
14
s.isdigit() вернёт True, если строка непустая и состоит только из цифр.
5
Ещё есть isnumeric() и isdecimal() — они отличаются на экзотических символах (дроби-юникод, индексы). Для обычной задачи разницы не заметишь, бери isdigit().
Ваш ответ
Войдите, чтобы ответить на вопрос.