Python用户输入公式

2024-05-29 03:07:05 发布

您现在位置: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)

Tags: andto方法in脚本inputifas
2条回答

可以将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'时,您将输入'x/y'

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

泰克·弗尔·埃克森贝尔——这让我决定你需要什么。

是的,这是可能的。以字符串变量的形式读入公式,例如

equation = input("Enter your equation here")

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

e = eval(equation)

使用这种方法要非常小心:eval()功能强大,并且对它接受的内容非常挑剔。

相关问题 更多 >

    热门问题