07 Июл 2023
2 мин
4102

Проверка строки на числовое значение в Python

Часто в ходе работы с Python возникает необходимость проверить, является ли строка числовым значением. Например, при обработке пользовательского ввода

Содержание

Часто в ходе работы с Python возникает необходимость проверить, является ли строка числовым значением. Например, при обработке пользовательского ввода или при чтении данных из файла. В этих случаях, данные часто представлены в виде строк и могут содержать числовые значения, записанные как строки.

Рассмотрим пример: есть строка ‘123’ и есть необходимость узнать, является ли это число.

s = '123'

Самый простой и распространенный подход для проверки строки на числовое значение в Python — это использование обработки исключений.

Сначала попытаться преобразовать строку в число с помощью функции float(). Если преобразование прошло успешно, значит строка содержит числовое значение. Если во время преобразования произошла ошибка ValueError, значит строка не является числом.

def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        return False

Однако, этот подход может показаться немного громоздким, особенно для новичков.

Существует другой способ, который использует регулярные выражения.

import re

def is_number(s):
    if re.match("^\d+?\.\d+?$", s) is None:
        return s.isdigit()
    return True

В этом примере используется функция re.match(), которая проверяет, соответствует ли строка заданному регулярному выражению. В данном случае проверяется, является ли строка числом с плавающей точкой. Если это не так, то с помощью метода isdigit() проверяется, является ли строка целым числом.

Оба подхода могут быть использованы в зависимости от конкретной ситуации и предпочтений разработчика.

Содержание

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

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