Python 用户输入公式



我正在编写一个简单的python脚本来使用Eulers方法求解微分方程,现在每次我想求解新方程时,我都必须更改源代码。

(目前安全问题无关紧要,因为这是一个个人项目。

我的问题:
是否可以输入方程式作为用户输入并将其转换为变量?例如,在输入 y/x 的地方使用 e=input("enter equation") ,并将e作为变量供以后使用?

#I would like to be able to type in a equation as user input and turn it to a variable for later use in the if and elif segments, example
    e=input("Enter your equation here")
    e=float(e)

    h=input("Ange steglängd: ")
    h=float(h)
    x=input("Angivet värde på x: ") 
    x=float(x)
    y=input("Värde på y med anseende på x: ") 
    y=float(y)
    z=input("Närmevärde du vill ha för y(x), ange x: ") 
    z=float(z)

    if x<z:
        while x<z:
            #Type in equation below as e
            e=y/x
            y=y+h*e 
            x+=h    
        print(y)
    elif x>z: 
        while x>z:
            e=y/x
            y=y-h*e
            x-=h
        print(y)

Tack för exempel -- 这让我能够确定你需要什么。

是的,这是可能的。 在公式中读取为字符串变量,例如

equation = input("Enter your equation here")

然后,当您想要查找 e 的值时,请使用 Python eval 方法:

e = eval(equation)

使用这种方法要非常小心:eval()很强大,并且对它接受的内容非常有区别。

  • 评估真的是危险
  • 不受信任的安全性字符串
您可以将

eval与 lambda 函数结合使用,如下所示:

e = eval('lambda x, y: x/y')

要实际具有这种交互性,请使用raw_input()获取实际表达式(在本例中为'lambda x, y: x/y')。或者,如果您不想键入整个lambda措辞,并且前提是您将始终具有自变量x和因变量y,则在类似y = f(x)的等式中,您可以编写如下内容:

e = eval('lambda x, y: ' + raw_input('enter equation for y=f(x): '))
然后,当

系统提示您输入'x/y'时。

但是,您确定在while循环需要它吗?

相关内容

  • 没有找到相关文章

最新更新