在python for循环中,跳过值

时间:2011-03-07 03:29:12

标签: python for-loop range

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 个答案:

答案 0 :(得分:17)

请勿在{{1​​}}中执行此操作。 range(100)循环没有像这样提供跳过的方法; for将被设置为列表中的下一个值,无论您在循环体中将其更改为什么。请改用time循环,例如

while

答案 1 :(得分:1)

time将不断覆盖每个循环迭代,因此time+=10将无法获得所需的效果。您可以使用whiletime变量的显式变换将循环转换回C样式循环,或者您可能很想要并设置一个允许向前跳过任意值的迭代器。

答案 2 :(得分:1)

您在最后一行的time作业无效。在循环的顶部,time会立即分配给range产生的下一个值。但是为什么这是一个循环,你不能直接进行计算吗?