Калькулятор · Шаг 9 из 9
Что происходит при нажатии действия
Последний шаг и самый главный. Нажали «2», «+», «3», «*» — и на экране должно появиться 5, ещё до того, как нажато «равно». Калькулятор не ждёт всего выражения: он считает каждый раз, когда набрано достаточно.
Что сделать
Обработайте нажатие действия или «равно» — так, чтобы калькулятор считал, не дожидаясь всего выражения.
Что приходит
ekran— что набрано на экране, строкаnakopleno— накопленное число илиNoneznak— запомненное действие илиNoneklavisha— нажатая клавиша:"+","-","*","/"или"="
Что вернуть
Тройку (новый экран, новое накопленное, новый знак); правила — в «Подробных правилах»; ваши шаги 1–3 даны готовыми — зовите их.
Допишите функцию nazhat_deystvie в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Это «мозг» калькулятора: окно зовёт nazhat_deystvie на каждую кнопку действия и «=» и хранит то, что вы вернули. Решите шаг — и «2 + 3 *» покажет 5 ещё до «равно».
Набрали «2» и нажали «+»: накопленного ещё нет — оно становится 2, знак «+» запомнен, экран прежний: ("2", 2, "+"). Набрали «3» и нажали «*»: 2 + 3 = 5 считается сразу — ("5", 5, "*").
nazhat_deystvie("2", None, None, "+")
('2', 2, '+')
Функции передают состояние калькулятора и нажатую клавишу (+, -, *, / или =). Верните тройку: новый экран, новое накопленное, новый знак.
Правила:
- Если накопленного и знака ещё нет — накопленным становится число с экрана, знак запоминается, экран остаётся прежним.
- Если накопленное и знак есть — выполните действие, покажите результат, он же становится новым накопленным.
- После «равно» знак сбрасывается, а накопленное остаётся: следующее действие продолжится от результата.
- Если получилась «Ошибка» — она на экране, накопленное и знак сбрасываются: считать дальше не от чего.
Функции razobrat_chislo, pokazat_chislo и primenit уже написаны вами в шагах 1–3 и даны готовыми — их надо использовать, а не писать заново.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.