Почему `pprint()` в Sympy не работает для цикла?
Это мой код
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() это работает!).
Почему первый код не может распечатать красивое уравнение, как второй код?
1 ответ
Решение
Трудно сказать без контекста, но, вероятно, потому что 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))