07 Июл 2023
2 мин
1900

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

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

Содержание

Когда работаешь с данными в 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.

Содержание

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

Определи профессию по рисунку