我想写一个程序,它可以识别一个数学公式,并要求用户输入值并显示结果。
没有EVAL函数
- 程序必须识别4个变量。
- 程序必须识别算术运算符(+,-,*,/,[^,()]-> extra)
- r=a(+,-,*,/)b…,->获取方程解析值,请求值并打印结果。
我现在看到的是:
formul=raw_input('Enter your formula: ")
a=input("Value a: ")
b=input("Value b: ")
c=input("Value c: ")
d=input("Value d: ")
这是一个很好的,你可以使用eval和catch每次有一个NameError。像这样
import re
variables = {}
formula = raw_input('Insert formula: ')
while True:
try:
res = eval(formula, variables)
except NameError as e:
v = re.match('name .(w+). is not defined', e.message).group(1)
variables[v] = input('insert value for %s: ' % v)
continue
print ("%s = %s" % (formula, res))
break
输出类似于
Insert formula: me + you
insert value for me: 10
insert value for you: 100
me + you = 110
formula=formula.replace("a", str(a)).replace("b",str(b)).replace("c", str(c)).replace("d", str(d))
print eval(formula)