Предмет: Информатика, автор: hasbula228

написать функцию которая принимает в себя строку которую вводит пользователь вида '12+5' или 5*4
и возвращает результат операции(НЕ ИСПОЛЬЗУЯ eval)

Ответы

Автор ответа: TemaZpro
0

Код на языке 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+) - одно или более цифр (второй операнд).

Похожие вопросы
Предмет: История, автор: fajzullinakamila5
Первый консул быстро проникся убеждением, что тщеславие во Франции является национальной страстью. Чтобы одновременно удовлетворить эту живущую во всех страсть и собственное своё честолюбие, он стремился расширить пределы Франции и усилить своё влияние в Европе.



Парижанин, утром находивший в «Moniteur» декрет, начинавшийся словами «Голландия присоединена к империи», восторгался могуществом Франции, находил, что __________ сильно превосходит Людовика XIV, считал за честь повиноваться такому властителю, забывал о том, что накануне пострадал от рекрутского набора или от косвенных налогов, и подумывал, как бы выхлопотать своему сыну какую-нибудь должность в Голландии.



Выберите три верных утверждения из списка:

1. В период, когда правитель, о котором говорится в тексте, был у власти, Франция уничтожила английский флот у мыса Трафальгар

2. Правитель, о котором говорится в тексте, после повторного отречения от престола был отправлен в ссылку на о.Святой Елены

3. В 1812 г. правитель, о котором говорится в тексте, разгромил силы шестой антифранцузской коалиции в битве под Лейпцигом

4. В тексте речь идёт о Наполеоне I Бонапарте

5. В государстве, в котором у власти находился упоминаемый в тексте правитель, до 1804 г. существовал режим Консульства

6. В тексте речь идёт о Людовике XVI
Предмет: Математика, автор: fellsbecky