В программировании на Python часто возникает задача извлечения чисел из строки. Например, у вас есть строка: «Привет 12345, как дела 67890?». Вашей задачей является извлечение чисел 12345 и 67890 из этой строки.
Существуют различные подходы к решению этой задачи, но два наиболее распространенных — это использование регулярных выражений и метода isdigit()
.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Использование регулярных выражений
Регулярные выражения — это специальный синтаксис для работы с текстом, который позволяет искать и извлекать определенные шаблоны. В Python для работы с регулярными выражениями используется модуль re
.
import re line = "привет 12345, как дела 67890?" numbers = re.findall(r'\b\d+\b', line) print(numbers)
В этом коде используется функция findall()
, которая возвращает все найденные совпадения. \b\d+\b
— это регулярное выражение, которое ищет последовательности цифр.
Использование метода isdigit()
Метод isdigit()
является встроенным методом для строк в Python. Он проверяет, состоит ли строка только из цифр.
line = "привет 12345, как дела 67890?" numbers = ''.join(c if c.isdigit() else ' ' for c in line).split() print(numbers)
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
В этом коде мы проходим по каждому символу в строке и, если символ является цифрой, сохраняем его. Если символ не является цифрой, мы заменяем его на пробел. Затем мы используем метод split()
, чтобы разбить строку на список чисел.
Оба подхода эффективны и могут быть использованы в зависимости от конкретной задачи и предпочтений программиста.
Добавить комментарий