Во многих сценариях программирования часто встречаются строки, содержащие числа. Извлечение этих чисел и выполнение над ними математических операций, например сложение, может оказаться полезной задачей. В этой статье мы рассмотрим пять различных методов извлечения чисел из строки и последующего вычисления их суммы с помощью Python.
Метод 1: использование регулярных выражений
Первый метод предполагает использование регулярных выражений для поиска и извлечения чисел из строки. Модуль reв Python предоставляет мощные инструменты для сопоставления с образцом. Вот пример фрагмента кода для извлечения и суммирования чисел из строки с помощью регулярных выражений:
import re
def sum_numbers_regex(string):
numbers = re.findall(r'\d+', string)
return sum(map(int, numbers))
string = "I have 5 apples and 10 oranges"
result = sum_numbers_regex(string)
print("Sum of numbers:", result)
Метод 2: использование распознавания списка
Второй метод использует понимание списка для перебора символов в строке, идентификации цифр и накопления их для суммирования. Вот пример:
def sum_numbers_list_comprehension(string):
numbers = [int(char) for char in string if char.isdigit()]
return sum(numbers)
string = "The total is 1234"
result = sum_numbers_list_comprehension(string)
print("Sum of numbers:", result)
Метод 3: разделение и преобразование
В этом методе мы разбиваем строку на отдельные слова и преобразуем каждое слово в число, если оно числовое. Затем суммируем полученные числа. Вот код:
def sum_numbers_split_convert(string):
words = string.split()
numbers = [int(word) for word in words if word.isdigit()]
return sum(numbers)
string = "The sum is 25, 30, and 45"
result = sum_numbers_split_convert(string)
print("Sum of numbers:", result)
Метод 4: использование метода isnumeric()
Для строк, содержащих только числовые символы, метод isnumeric()можно использовать для идентификации и суммирования чисел. Вот пример:
def sum_numbers_isnumeric(string):
numbers = [int(char) for char in string if char.isnumeric()]
return sum(numbers)
string = "The result is 9876543210"
result = sum_numbers_isnumeric(string)
print("Sum of numbers:", result)
Метод 5: Использование метода re.split()
Метод re.split()позволяет нам разделить строку на основе шаблона регулярного выражения. Мы можем разбить строку на подстроки, содержащие только цифры, а затем суммировать их. Вот код:
def sum_numbers_resplit(string):
numbers = re.split(r'\D', string)
numbers = [int(num) for num in numbers if num.isdigit()]
return sum(numbers)
string = "The values are 1, 2, and 3"
result = sum_numbers_resplit(string)
print("Sum of numbers:", result)
В этой статье мы рассмотрели пять различных методов извлечения чисел из строки и вычисления их суммы с помощью Python. Мы рассмотрели такие методы, как регулярные выражения, понимание списков, разделение и преобразование, а также использование определенных строковых методов. Применяя эти методы, вы можете легко извлекать и вычислять сумму чисел из строк в различных сценариях программирования.