我正在进入一个带有特定初始条件(m=0)的while循环。在while循环中,我有一个for循环,如果有一个spec,它需要中断。如果我的增长率是>= 20%,就达到了这个条件。
如果达到这个条件,我想离开for循环,使用i来设置新的m。然后,我想执行一个新的for循环,如果满足条件,则再次离开该循环,并使用新的i for m。
我试过使用m+=i,但这是i的总和,我不想要。我希望每个新的i都用于m。请在下面的代码中找到
nvdia=pd.read_csv(r"/NVDA.csv",sep=",").round(1)
nvdia["Date"]=pd.to_datetime(nvdia["Date"])
nvdia=nvdia.set_index(nvdia["Date"])
nvdia=nvdia.drop("Date",1)
nvdia=nvdia.loc["2017-07-01":"2018-07-01"]
#nvdia["Close"].plot()
m=0
i=0
while m<len(nvdia.index):
m+=i ###This is what I use but it is wrong. If I use i=m the loop is goes infinity, which really is strange
for i in range(m,len(nvdia.index)):
percentage_growth=100*(nvdia["Close"].values[i]/nvdia["Close"].values[m]-1)
if percentage_growth>=20:
break发布于 2020-03-16 21:31:41
@zmf:谢谢你的帮助。但是,我需要添加一个额外的break语句来离开while循环,因为我的条件是
如果有一天有人可能遇到相同/相似的问题,这里是解决方案
m=0
while m<=len(nvidia.index):
for i in range(m,len(nvidia.index)):
percentage_growth=100*(nvidia["Close"].values[i]/nvidia["Close"].values[m]-1)
if percentage_growth>=20:
m=i
print(m,percentage_growth)
break
else:
percentage_growth=100*(nvidia["Close"].values[i]/nvidia["Close"].values[m]-1)
if i+1==len(nvidia.index):
breakhttps://stackoverflow.com/questions/60682011
复制相似问题