Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
07 Июл 2023
2 мин
2558

Проверка, является ли строка целым числом в Python без использования try/except

Когда работаешь с данными в Python, часто приходится сталкиваться с ситуацией, когда необходимо проверить, является ли строка целым числом. Это может

Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.

Когда работаешь с данными в Python, часто приходится сталкиваться с ситуацией, когда необходимо проверить, является ли строка целым числом. Это может быть актуально, например, при обработке пользовательского ввода, когда требуется убедиться, что введенные данные соответствуют определенному формату.

Предположим, есть следующие строки:

s1 = '123'
s2 = '-456'
s3 = '7.89'
s4 = 'abcdef'

Необходимо проверить, являются ли эти строки целыми числами. Очевидно, что только s1 и s2 являются целыми числами, в то время как s3 является десятичным числом, а s4 — вообще не числом.

Один из распространенных подходов к решению этой проблемы — использовать конструкцию try/except, однако, она может быть избыточной и не всегда желательной. К счастью, в Python существуют другие способы.

Один из таких способов — использование метода isdigit(), который возвращает True, если строка содержит только цифры. Однако, данный метод не справится с отрицательными числами и числами с плавающей точкой.

print(s1.isdigit())  # True
print(s2.isdigit())  # False, потому что есть знак '-'
print(s3.isdigit())  # False
print(s4.isdigit())  # False

Другой способ — использовать регулярные выражения. В Python для этого есть модуль re. Можно создать шаблон, который будет соответствовать только целым числам, и затем проверять, соответствует ли строка этому шаблону.

import re

def is_int(s):
    return bool(re.match(r'^-?\d+$', s))

print(is_int(s1))  # True
print(is_int(s2))  # True
print(is_int(s3))  # False
print(is_int(s4))  # False

Таким образом, задача проверки, является ли строка целым числом, может быть решена в Python без использования try/except.

На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.

Опрос для читателей: Какой язык программирования лучше? Узнайте результат после голосования

Добавить комментарий