class CulcCI(): def __init__(self): self.culc = Culc() def __parser__(self, str): return filter(None, re.split('([0-9]+[eE][-+]?[0-9]+){0,1}([\-\+\*\/\^])', str.replace(" ",""), 1)) def run(self): print ("Welcome to culc") print ("You can: +, -, *, / and ^") while True: buf = "" try: buf = raw_input("Please, enter the expression: ") except EOFError: exit() print (self.proc(buf)) def proc(self, exp): l = self.__parser__(exp) try: return { "+": lambda x, y: self.culc.sum(x, y), "-": lambda x, y: self.culc.dif(x, y), "*": lambda x, y: self.culc.mul(x, y), "/": lambda x, y: self.culc.div(x, y), "^": lambda x, y: self.culc.pow(x, y), }[l[1]](l[0], l[2]) except: return "Sorry, smth wrong with your expression"
def __init__(self): self.culc = Culc()