Хорошо, вот программа, которая использует очередь для реализации простого калькулятора на Python:
from queue import Queue
def calculator(queue):
"""Вычисляет выражение из очереди."""
stack = []
while queue:
x = queue.get()
if x in "+-*/":
y = stack.pop()
x = stack.pop()
stack.append(eval(f"{x}{x}={y}"))
else:
stack.append(float(x))
return stack[0]
def main():
"""Главная функция."""
queue = Queue()
while True:
x = input("Введите число или операцию: ")
if x in "+-*/":
queue.put(x)
elif x == "":
break
else:
queue.put(float(x))
result = calculator(queue)
print(f"Результат: {result}")
if __name__ == "__main__":
main()
Эта программа работает следующим образом:
Функция calculator() принимает в качестве аргумента очередь и вычисляет выражение из нее.
Функция использует стек для хранения промежуточных результатов.
Каждый элемент из очереди добавляется в стек, если это число, или используется для выполнения операции над двумя верхними элементами стека, если это операция.
Функция возвращает результат вычисления.
Главная функция запрашивает у пользователя числа и операции, пока он не введет пустую строку.
Затем она добавляет эти числа и операции в очередь.
После этого функция calculator() вычисляет выражение из очереди и выводит результат на экран.
Вот пример работы программы:
Введите число или операцию: 1
Введите число или операцию: 2
Введите число или операцию: +
Введите число или операцию: 3
Введите число или операцию: =
Результат: 6
Вы можете изменить программу, добавив в неё новые операции, например, ^ для возведения в степень и % для деления по модулю.