【发布时间】:2019-11-27 09:53:28
【问题描述】:
我使用 Python 编写了以下代码
import numpy as np
x1=np.array([1,2,3,4])
p1=np.array([.1,.2,.3,.4])
def fun1 (x_vec,p_vec):
x11=np.zeros(len(x_vec))
p11=np.zeros(len(p_vec))
for i in range (0,len(x_vec)):
x11[i] =x_vec[i]**2
p11[i]=x11[i]*p_vec[i]
return x11 ,p11
第一次迭代
x2=np.array(len(x1))
p2=np.array(len(p1))
x2 ,p2 = fun1(x1,p1)
第二次迭代
x3=np.array(len(x1))
p3=np.array(len(p1))
x3 ,p3 = fun1(x1,p2)
所以在第二次迭代中,我使用了从上一次迭代中获得的p2。
第三次迭代
x4=np.array(len(x1))
p4=np.array(len(p1))
x4 ,p4 = fun1(x1,p3)
print("p",p2)
print("x",x2)
print("p",p3)
print("x",x3)
print("p",p3)
print("x",x4)
基于此,我想要的输出是,(3 次迭代)
p [0.1 0.8 2.7 6.4]
x [ 1. 4. 9. 16.]
p [1.000e-01 3.200e+00 2.430e+01 1.024e+02]
x [ 1. 4. 9. 16.]
p [1.000e-01 3.200e+00 2.430e+01 1.024e+02]
x [ 1. 4. 9. 16.]
由于上面的代码手动更新了值,我需要在 Python 中使用 for 循环或一些迭代器来做同样的事情。
由于我是 Python 新手,所以我不知道该怎么做。谁能建议一种方法来做到这一点?
【问题讨论】:
标签: python function for-loop iteration return-value