for循环和方法

时间:2017-08-02 06:15:38

标签: python for-loop

我使用for循环将方法的结果再次传递给方法,并在两个列表上完成修改。

def loop(a, b)
    #modification on a, b
    return a, b
a = [1, 1, 1]
b = [2, 2, 2]
for i in np.arange(100):
    a, b = loop(a, b)

在我遇到此问题的代码中,我在循环方法中定义了另一种方法:

def loop(a, b, c): # a = cash i own; b = shares i own; c=price
    buying = a[0]*0.1/c[-1] #number of shares I will spend
    a.append(a[-1])
    b.append(b[-1])
    if c[-1]/c[-2] > 1.01, order(a, b, c)
    def order(a, b, c):
        a[-1] = a[-2] - buying*c[-1]
        b[-1] = b[-2] + buying
        return
    return a, b

for i in np.arange(100):
    a, b = loop(a, b, c)

我想将现金和股票信息存储在a,b列表中。如果不满足购买条件,则添加到列表中的新元素应该是最后一个元素。如果满足购买条件,那么刚刚添加到列表中的元素将被更改。但是,当我运行代码时,在某个时刻新元素添加了a,b将不是列表中的最后一个,而是最初的那个,这会破坏整个事物。

1 个答案:

答案 0 :(得分:0)

订单功能的最后一行。 如果您只使用“返回”,Python会使用最后返回的值,而不是新值。所以,如果删除该行,我认为它工作正常!

此处未解释任何回复:None return in Python