在python for循环中,跳过值

2024-06-16 10:58:00 发布

您现在位置:Python中文网/ 问答频道 /正文

time=0
gold=0
level=1
for time in range(100):
  gold+=level
  if gold>20*level:
    level+=1
    time+=10

有了这个程序,黄金被添加到一个临界量,然后需要20秒来升级一个矿山,这样它生产更多的黄金。我想跳过这20步?这在c++中有效,我不知道如何在python中实现。


Tags: in程序foriftimerangelevel黄金
3条回答

每次循环迭代time都会被覆盖,因此time+=10不会产生所需的效果。您可以使用whiletime变量的显式变异,将循环转换回C样式的循环,或者您可以想象并设置一个允许跳过任意值的迭代器。

您在最后一行对time的赋值无效。在循环的顶部,time立即被赋给由range产生的下一个值。但为什么这是一个循环,你不能直接做计算吗?

不要在range(100)里做。for循环不提供像这样向前跳的方法;time将被设置为列表中的下一个值,而不管您在循环主体中将其更改为什么。使用while循环代替,例如

time = 0
while time < 100:
   gold += level
   if gold > 20 * level:
      level +=1
      time += 10
   time += 1

相关问题 更多 >