在我的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]之后的第二天的价格。最后,它返回这两者之间的差异。
答案 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)