因此,我正在为欧拉(Euler(求解一阶微分方程的方法编写一个函数。我的问题是我每次要更改差异功能时都必须更改代码。
是否可以让用户输入表达式,然后让程序使用该输入进行计算?
def derivative(a,b):
func=a**2+b**2
return round(float(func),4)
def euler(x_in,y_in,x_fin,step):
rounder = [x_in,y_in,x_fin,step]
for i in rounder:
i=round(i,4)
x=x_in
y=y_in
while not(x==x_fin):
der=derivative(x,y)
x=round(x+step,4)
y=round(y+(der*step),4)
print y
我希望能够更改用户输入上的衍生功能中的func变量。
今天有这个问题,并使用词典使它工作。
我所做的是:第一步,定义功能:
def hello():
print('Hello')
第二步,定义字典:
func_dict = {'goodbye':hello}
第三步,要求命令:
command = input('Goodmorning Sir.')
第四步,要求将输入转换为输出(在这种情况下您也可以使用相同的单词(:
func_dict[command]()
希望这很清楚,如果您想看一个示例,请在下面放我的完整代码(虽然来自其他代码(。
感谢Dyz乍一看。
def test():
print('Test is successfull')
def help():
pass
func_dict = {'test':test,'help':help} # In this case the 1st is the input, 2nd output
command = input('> ')
func_dict[command]()
编辑:在这种情况下,也许使用.int或.float会更好。