Войти Создать аккаунт

Инженерный калькулятор · Шаг 10 из 10

Кнопки окна

Окно с кнопками уже есть, и оно ничего не решает само: на каждое нажатие оно спрашивает, что станет с калькулятором. Состояние — это набранная строка, текст на экране и память. Цифры и знаки дописываются, «⌫» стирает, «C» очищает, «=» считает.

Что сделать

Скажите, что станет с калькулятором после нажатия кнопки: дописать, стереть, очистить или посчитать.

Что приходит

  • sostoyanie — словарь {"vvod": набранное, "ekran": что на экране, "pamyat": память}; менять его нельзя

  • knopka — что нажали: "C", "⌫", "=" или текст, который дописать ("7", "+", "sin(")

  • vypolnit — функция vypolnit(строка, память), возвращает (ответ, новая память)

  • na_ekran — функция «ответ → строка для экрана», ваш шаг 7

  • slovami — функция «исключение → текст или None», ваш шаг 8

Что вернуть

Новое состояние — словарь с ключами vvod, ekran, pamyat в этом порядке.

Допишите функцию nazhatie в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

В проекте

Окно зовёт nazhatie на каждую кнопку и каждую клавишу и рисует то, что вы вернули. Решите шаг — и калькулятор в окне заработает.

Пример

Набрано «2+», нажали «3»: nazhatie({"vvod": "2+", "ekran": "2+", "pamyat": {}}, "3", None, None, None) — это {"vvod": "2+3", "ekran": "2+3", "pamyat": {}}. Для простого нажатия счёт не нужен, поэтому вместо трёх функций — None.

Тот же пример кодом
Вызов
nazhatie({"vvod": "2+", "ekran": "2+", "pamyat": {}}, "3", None, None, None)
Вернуть
{'vvod': '2+3', 'ekran': '2+3', 'pamyat': {}}
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.