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

Python:数学公式及其变量识别,python,variables,math,formula,Python,Variables,Math,Formula,我想编写一个程序来识别数学公式,并要求用户输入值并显示结果。 无评估功能 程序必须识别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: ")

我想编写一个程序来识别数学公式,并要求用户输入值并显示结果。
无评估功能

  • 程序必须识别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并在每次出现名称错误时捕获它。像这样的

    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
    

    这是大学作业吗?给出的两个答案都使用
    eval()
    。你觉得这样行吗?还是你真的需要避免这个功能?此外,给定的代码对任何运算符的求值都不起作用。你没有更多吗?如果没有,你真的知道足够处理这个赋值吗?这个可以处理四个变量吗?是的,它可以处理任意数量的变量和操作
    Insert formula: me + you
    insert value for me: 10
    insert value for you: 100
    me + you = 110