如何在while循环中更改初始条件

问题描述 投票:0回答:1

我正在进入具有特定初始条件(m = 0)的while循环。在while循环中,我有一个for循环,如果需要规范则需要中断。条件已经达到,如果我的增长率> = 20%。

如果达到此条件,我要离开for循环并使用i设置新的m。然后,我想做一个新的for循环,如果达到条件,再次离开循环,并为i使用新的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
python while-loop do-while
1个回答
0
投票
如果某人可能有一天有相同/相似的问题,这是解决方法

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): break

© www.soinside.com 2019 - 2024. All rights reserved.