Python 为什么“pprint()”在Sympy中没有';你不能在for循环上工作吗?
这是我的密码Python 为什么“pprint()”在Sympy中没有';你不能在for循环上工作吗?,python,sympy,pprint,Python,Sympy,Pprint,这是我的密码 14 def sum(output): 15 result = 0 16 for x, w in zip(output[0], output[1]): 17 result+=w*np.exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2) 18 pprint(w*exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2)) 19 return ((b-a)/2.0)*resu
14 def sum(output):
15 result = 0
16 for x, w in zip(output[0], output[1]):
17 result+=w*np.exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2)
18 pprint(w*exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2))
19 return ((b-a)/2.0)*result
对于此代码,如果我调用函数sum
终端上的输出将打印:
0.548543700179284
0.6
0.692267362730138
0.0
0.252818105473090
0.6
但如果
14 def sum(output):
15 result = 0
16 for x, w in zip(output[0], output[1]):
17 result+=w*np.exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2)
18 return ((b-a)/2.0)*result
19
20 pprint(w*np.exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2))
它会打印出一个漂亮的公式(我是说pprint(),这是工作!)
为什么第一个代码不能像第二个代码那样打印出一个漂亮的等式?没有更多的上下文很难说,但可能是因为
w
和x
都是在函数sum()的内部和外部定义的
还请注意,这两行不同:
pprint(w*exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2))
pprint(w*np.exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2))
请添加在第二个示例中定义的x
和w
。@NilsWerner x和w它只是列表的元素。在sum()
之外?我要说的是:您没有显示所有相关的代码。请添加所有有工作示例所需的部分。是的,完全正确。在第二个示例中,w
和x
设置为什么?第16行中的函数是sum
的局部函数。我认为不同的形式是意图。他正在计算一个数字答案,在另一个中打印一个符号答案(假设exp
是sympy.exp
)。但是OP不是在问为什么第一个代码(它只是打印一个数字)没有打印第二个公式吗?哦,我没有注意到OP在第二个代码中使用了两次np.exp
。