在Python for循环中跳过值
time=0
gold=0
level=1
for time in range(100):
gold+=level
if gold>20*level:
level+=1
time+=10
这个程序的功能是不断增加黄金,直到达到一个重要的数量,然后需要20秒来升级矿井,这样矿井就能生产更多的黄金。我想在循环中跳过这20秒(或者说20步)。这个在C++中可以做到,但我不太确定在Python中该怎么做。
3 个回答
1
在每次循环中,time
的值会不断被覆盖,所以 time+=10
这个操作不会达到你想要的效果。你可以把这个循环改成 C 语言那种风格的循环,使用 while
来手动改变 time
的值,或者你也可以用一种更高级的方式,设置一个迭代器,这样就可以跳过任意的值。
1
你在最后一行给time
的赋值没有任何作用。在循环的开始,time
会立刻被range
生成的下一个值覆盖。那么,这个循环到底有什么意义呢?难道不可以直接计算吗?
17
不要在 range(100)
中这样做。for
循环没有办法像那样跳过某些值;无论你在循环内部把 time
改成什么,它都会自动设置为列表中的下一个值。可以改用 while
循环,比如:
time = 0
while time < 100:
gold += level
if gold > 20 * level:
level +=1
time += 10
time += 1