def to_calculate(self, expression):
import re
OPERATIONS = r"([-+/*x])"
s = re.split(OPERATIONS, expression)
print(f"{s=}")
try:
while len(s) > 2:
result = self.calculate(s[1], s[0], s[2])
temp = s[3:]
temp.insert(0, result)
s = temp
return result
except Exception as e:
print(f"Something went wrong:\n{e}")
def getfloat(self, number):
try:
num = float(number)
except ValueError:
print("Invalid number, try again")
exit()
return num
def calculate(self, operator, number1, number2):
number1 = self.getfloat(number1)
number2 = self.getfloat(number2)
if operator == "+":
return self.add2numbers(number1, number2)
if operator == "-":
return self.subtract2numbers(number1, number2)
if operator == "*" or operator == "x":
return self.multiply2numbers(number1, number2)
if operator == "/":
return self.divide2numbers(number1, number2)
s=['12', '+', '3', '-', '']
Invalid number, try again
Future exception was never retrieved
future: <Future finished exception=SystemExit(None)>
Traceback (most recent call last):
File "C:\Users\User\sides\python_flet\calculator\app.py", line 69, in getfloat
num = float(number)
^^^^^^^^^^^^^
ValueError: could not convert string to float: ''
Because its incomplete, I don't know how to handle if the expression is 12+3-