如何防止for循环停止?

时间:2019-03-27 01:32:54

标签: python pandas loops for-loop

在我的for循环中,当if语句都为true时,它将执行应有的操作,然后结束并不会在整个循环中继续。在柜台买卖之后,我尝试使用continue语句。当存储变量的总和时,它起作用了,但是随后我在返回变量上得到了一个错误,该错误指出内建模块的NoneType对象。

如果我忽略了continue语句,它只会存储与if语句匹配的第一个价格,但会中断并停止对与那些语句匹配的其他价格求和。

我知道问题是在添加计数器之后它会从for循环中中断,也许返回的缩进量很差吗?

buy = 0
sell = 0
def checking(x,y):
    for i in range (17):
        if x[i]>x[i-1]:
            if y[i] >y[i-1]:
                global buy, sell
                buy += y[i]
                try:
                    sell +=y[i+1]
                except:
                    sell +=y[i]

                continue
                return sell-buy

gains = checking(volume,close)

gains

我需要创建一个读取2个数据框的函数,一个是股票的数量,另一个是收盘价。我希望函数检查今天的交易量是否大于昨天的交易量,如果是这样,那么它将输入另一个if语句,询问今天的收盘价是否大于昨天的交易量。如果这一点也成立,那么它将在“购买”变量中存储和汇总当天的价格,并在“出售”变量中存储并计算[i + 1]之后的第二天的价格。最后,它返回这两者之间的差异。

2 个答案:

答案 0 :(得分:0)

是的,return语句的缩进不正确。这是固定代码:

buy = 0
sell = 0
def checking(x,y):
    for i in range (17):
        if x[i]>x[i-1]:
            if y[i] >y[i-1]:
                global buy, sell
                buy += y[i]
                try:
                    sell +=y[i+1]
                except:
                    sell +=y[i]

    return sell-buy

gains = checking(volume,close)

答案 1 :(得分:0)

buy = 0
sell = 0
def checking(x,y):
    for i in range (17):
        if x[i]>x[i-1]:
            if y[i] >y[i-1]:
                global buy, sell
                buy += y[i]
                try:
                    sell +=y[i+1]
                except:
                    sell +=y[i]


    return sell-buy

gains = checking(volume,close)