def calcul(eq, var_list): try: eq = eq.replace(" ", "") eq_list = tokenize(eq, var_list) E = Parser(eq_list, var_list) ans = E.eval() return ans except Exception as e: return e
def change_x_to_num(eq, var_list, string): try: eq = eq.replace(" ", "") eq_list = tokenize(eq, var_list) variable = [] value = [] string = string.replace(" ", "") string = string.split(',') for n in range(len(string)): temp = string[n].split('=') if temp[0] not in var_list: raise Exception('%s is not in current variable list' % (temp[0])) if len(temp) != 2 or not is_digit(temp[1]): raise Exception('Wrong input') variable.append(temp[0]) value.append(temp[1]) for n in range(len(variable)): eq_temp = [] for m in range(len(eq_list)): if eq_list[m] == variable[n]: eq_temp.append(float(value[n])) else: eq_temp.append(eq_list[m]) eq_list = eq_temp if eq_list[0] == 'sig': sig_eq = '' for n in range(4, len(eq_list)-6): sig_eq += str(eq_list[n]) ans, _, _ = sigma(eq_list[2], sig_eq, eq_list[-5], eq_list[-3], var_list) return ans[0] E = Parser(eq_list, var_list) ans = E.eval() return from_list_to_str('', ans) except Exception as e: return '*Error* ' + str(e)
def calcul(eq, var_list): try: eq = eq.replace(" ", "") eq_list = tokenize(eq, var_list) if eq_list[0] == 'sig': sig_eq = '' for n in range(4, len(eq_list)-6): sig_eq += str(eq_list[n]) return sigma(eq_list[2], sig_eq, eq_list[-5], eq_list[-3], var_list) else: E = Parser(eq_list, var_list) ans = E.eval() domain, in_domain = E.get_domain() return [ans, domain, in_domain] except Exception as e: return 'Error', e, 0