
Вопрос задан 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

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

Отвечает Толстик Артём.
Простий,на одну
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)
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)



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
В коде, который вы предоставили, есть некоторые ошибки и недочеты. Я помогу вам исправить код и сделать калькулятор выражений на Python.
Прежде чем начать, нам нужно учесть следующие вещи:
- Учитывайте приоритет операций: сначала умножение и деление, затем сложение и вычитание.
- Обрабатывайте многозначные числа.
- Обрабатывайте отрицательные числа.
Используем обратную польскую запись (постфиксную нотацию) для вычисления выражения.
Вот исправленный код калькулятора:
pythondef 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
Этот код позволит вам вводить выражения с использованием скобок и осуществлять вычисления с учетом приоритета операций.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili