Написать генератор-функцию itercalc(), которая возвращает параметрический итератор, работающий как примитивный стековый калькулятор. Команды калькулятору посылаются с помощью .send(), возвращаемое значение — None, за исключением команды «?», которая возвращает вершину стека. Другие команды — это либо целое число (оно добавляется на стек), либо одна из операций «+», «-», «*» или «/», которые заменяют два верхних элемента стека на результат применения к ним соответствующей операции (вершина стека — это второй операнд). Деление целочисленное. Если операция невозможна, она не выполняется, и выводится ошибка:

   1 calc = itercalc()
   2 next(calc)
   3 for cmd in "? 3 -2 - what 5 * 2 / ?".split():
   4     if (res := calc.send(cmd)) is not None:
   5         print(res)

Insufficient stack
Unknown command
12

Подсказка: целочисленное деление — это int.__floordiv__, если вдруг понадобится


CategoryHomework

LecturesCMC/PythonIntro2025/Homework_IterCalc (последним исправлял пользователь FrBrGeorge 2025-10-20 14:21:31)