Вопрос задан 29.07.2023 в 08:49. Предмет Информатика. Спрашивает Смирнов Андрей.

Сделать калькулятор выражений в питоне начало:primer = list(input("Введите пример:")) lenght =

len(primer) i = 0 while i < lenght: if primer[i] == '*': primer[i-1] = \ int(primer[i-1])*\ int(primer[i+1]) print(primer[i]) del primer[i] del primer[i] lenght -= 2 i=0 if primer[i] == '/': primer[i-1] = \ int(primer[i-1])/\ int(primer[i+1]) print(primer[i]) del primer[i] del primer[i] lenght -= 2 i=0 i += 1
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Толстик Артём.
Простий,на одну 
a = int(input("Input: "))
ent = input(" '+','-','*','/': ")
b = int(input("Input: "))
if ent == '+':
print(a+b)
elif ent == '-':
print(a-b)
elif ent == '*':
print(a*b)
elif ent == '/':
print(a/b)
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

В коде, который вы предоставили, есть некоторые ошибки и недочеты. Я помогу вам исправить код и сделать калькулятор выражений на Python.

Прежде чем начать, нам нужно учесть следующие вещи:

  1. Учитывайте приоритет операций: сначала умножение и деление, затем сложение и вычитание.
  2. Обрабатывайте многозначные числа.
  3. Обрабатывайте отрицательные числа.

Используем обратную польскую запись (постфиксную нотацию) для вычисления выражения.

Вот исправленный код калькулятора:

python
def is_operator(char): return char in "+-*/" def precedence(operator): return {"+": 1, "-": 1, "*": 2, "/": 2}.get(operator, 0) def apply_operator(operators, values): operator = operators.pop() right = values.pop() left = values.pop() if operator == "+": values.append(left + right) elif operator == "-": values.append(left - right) elif operator == "*": values.append(left * right) elif operator == "/": values.append(left / right) def evaluate_expression(expression): tokens = expression.split() operators = [] values = [] for token in tokens: if token.isdigit() or (token.startswith('-') and token[1:].isdigit()): values.append(int(token)) elif is_operator(token): while (operators and is_operator(operators[-1]) and precedence(operators[-1]) >= precedence(token)): apply_operator(operators, values) operators.append(token) elif token == "(": operators.append(token) elif token == ")": while operators[-1] != "(": apply_operator(operators, values) operators.pop() while operators: apply_operator(operators, values) return values[0] if __name__ == "__main__": expression = input("Введите пример: ") result = evaluate_expression(expression) print("Результат:", result)

Пример использования:

makefile
Введите пример: (3 + 5) * 2 - 8 / 4 Результат: 14.0

Этот код позволит вам вводить выражения с использованием скобок и осуществлять вычисления с учетом приоритета операций.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос