首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在while循环中更改初始条件

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

Stack Overflow用户
提问于 2020-03-14 19:01:35
回答 1查看 55关注 0票数 0

我正在进入一个带有特定初始条件(m=0)的while循环。在while循环中,我有一个for循环,如果有一个spec,它需要中断。如果我的增长率是>= 20%,就达到了这个条件。

如果达到这个条件,我想离开for循环,使用i来设置新的m。然后,我想执行一个新的for循环,如果满足条件,则再次离开该循环,并使用新的i for m

我试过使用m+=i,但这是i的总和,我不想要。我希望每个新的i都用于m。请在下面的代码中找到

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2020-03-16 21:31:41

@zmf:谢谢你的帮助。但是,我需要添加一个额外的break语句来离开while循环,因为我的条件是

如果有一天有人可能遇到相同/相似的问题,这里是解决方案

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60682011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档