【问题标题】:in python for loop,, jump over values在python for循环中,跳过值
【发布时间】:2011-03-07 03:29:12
【问题描述】:
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 中做到这一点。
【问题讨论】:
标签:
python
for-loop
range
【解决方案1】:
不要在range(100) 中这样做。 for 循环没有提供这样的跳过方式; time 将设置为列表中的下一个值,无论您在循环主体中将其更改为什么。请改用while 循环,例如
time = 0
while time < 100:
gold += level
if gold > 20 * level:
level +=1
time += 10
time += 1
【解决方案2】:
time 将在每次循环迭代中不断被覆盖,因此time+=10 不会产生预期的效果。您可以使用while 和time 变量的显式突变将循环转换回C 样式循环,或者您可以设置一个允许向前跳过任意值的迭代器。
【解决方案3】:
您在最后一行对time 的分配无效。在循环的顶部,time 立即分配给range 产生的下一个值。但是为什么这是一个循环,你不能直接做计算吗?