Python:数学公式及其变量识别



我想写一个程序,它可以识别一个数学公式,并要求用户输入值并显示结果。
没有EVAL函数

  1. 程序必须识别4个变量。
  2. 程序必须识别算术运算符(+,-,*,/,[^,()]-> extra)
  3. 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)

最新更新