Skip to content

Commit 4f9b1a2

Browse files
committed
Calculator: Handle Error State Better
1 parent 2f1a99a commit 4f9b1a2

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

PyPortal_Calculator/calculator.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ def calculate(number_one, operator, number_two):
1313

1414
class Calculator:
1515
def __init__(self, calc_display, clear_button, label_offset):
16+
self._error = False
1617
self._calc_display = calc_display
1718
self._clear_button = clear_button
1819
self._label_offset = label_offset
@@ -30,6 +31,7 @@ def _all_clear(self):
3031

3132
def _clear_entry(self):
3233
self._operand = None
34+
self._error = False
3335
self._set_button_ce(False)
3436
self._set_text("0")
3537

@@ -92,7 +94,9 @@ def _handle_equal(self):
9294

9395
def add_input(self, input_key):
9496
try:
95-
if input_key == "AC":
97+
if self._error:
98+
self._clear_entry()
99+
elif input_key == "AC":
96100
self._all_clear()
97101
elif input_key == "CE":
98102
self._clear_entry()
@@ -115,4 +119,5 @@ def add_input(self, input_key):
115119
self._handle_equal()
116120
except (ZeroDivisionError, RuntimeError):
117121
self._all_clear()
122+
self._error = True
118123
self._set_text("Error")

0 commit comments

Comments
 (0)