Python 用户输入等式
Python User input equation
我正在编写一个简单的 python 脚本来使用欧拉法求解微分方程,现在每次我想求解一个新方程时都必须更改源代码。
(由于这是个人项目,目前安全性无关紧要。)
我的问题:
是否可以输入方程式作为用户输入并将其转换为变量?例如,在输入 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 for 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
循环中需要它吗?
我正在编写一个简单的 python 脚本来使用欧拉法求解微分方程,现在每次我想求解一个新方程时都必须更改源代码。
(由于这是个人项目,目前安全性无关紧要。)
我的问题:
是否可以输入方程式作为用户输入并将其转换为变量?例如,在输入 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 for 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
循环中需要它吗?