Код на языке Python:
import re
def calculate_expression(expression):
pattern = r'(\d+)(\D+)(\d+)' # Регулярное выражение для разделения выражения на операнды и оператор
matches = re.match(pattern, expression)
if not matches:
raise ValueError('Некорректное выражение')
num1 = int(matches.group(1))
operator_symbol = matches.group(2).strip()
num2 = int(matches.group(3))
if operator_symbol == '+':
result = num1 + num2
elif operator_symbol == '-':
result = num1 - num2
elif operator_symbol == '*':
result = num1 * num2
elif operator_symbol == '/':
result = num1 / num2
else:
raise ValueError('Неподдерживаемая операция')
return result
expression = input('Введите выражение: ')
result = calculate_expression(expression)
print('Результат:', result)
Объяснение:
Импортируем модуль re, который предоставляет функциональность работы с регулярными выражениями.
Задаем регулярное выражение pattern с помощью строки:
r'(\d+)(\D+)(\d+)'.
Это выражение разделяет выражение на три группы:
(\d+) - одно или более цифр (операнд);
(\D+) - один или более символов, не являющихся цифрами (оператор);
(\d+) - одно или более цифр (второй операнд).
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
Verified answer
Код на языке Python:
import re
def calculate_expression(expression):
pattern = r'(\d+)(\D+)(\d+)' # Регулярное выражение для разделения выражения на операнды и оператор
matches = re.match(pattern, expression)
if not matches:
raise ValueError('Некорректное выражение')
num1 = int(matches.group(1))
operator_symbol = matches.group(2).strip()
num2 = int(matches.group(3))
if operator_symbol == '+':
result = num1 + num2
elif operator_symbol == '-':
result = num1 - num2
elif operator_symbol == '*':
result = num1 * num2
elif operator_symbol == '/':
result = num1 / num2
else:
raise ValueError('Неподдерживаемая операция')
return result
expression = input('Введите выражение: ')
result = calculate_expression(expression)
print('Результат:', result)
Объяснение:
Импортируем модуль re, который предоставляет функциональность работы с регулярными выражениями.
Задаем регулярное выражение pattern с помощью строки:
r'(\d+)(\D+)(\d+)'.
Это выражение разделяет выражение на три группы:
(\d+) - одно или более цифр (операнд);
(\D+) - один или более символов, не являющихся цифрами (оператор);
(\d+) - одно или более цифр (второй операнд).