【问题标题】: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 不会产生预期的效果。您可以使用whiletime 变量的显式突变将循环转换回C 样式循环,或者您可以设置一个允许向前跳过任意值的迭代器。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-07-21
          • 1970-01-01
          • 1970-01-01
          • 2010-12-31
          • 2013-02-01
          • 2021-08-23
          • 1970-01-01
          相关资源
          最近更新 更多