【问题标题】:skip the loop certain number of times if a condition satisfies in a for loop [duplicate]如果在for循环中满足条件,则跳过循环一定次数[重复]
【发布时间】:2020-02-20 14:12:58
【问题描述】:

我在range(100) 中有一个for 循环。

每当我找到一个满足条件的数字时,它应该跳过循环一定次数

for i in range(2,100):
    if i %2 != 0:
        i = i+3

预期结果应该是:


2
3
6
7
10
11
.
.
.
.
.

【问题讨论】:

  • 你想跳过的条件是什么?
  • if i %2 != 0:,我应该跳过循环三遍
  • 1 % 2 为 1... 符合条件但没有跳过。
  • 您对这个结果有何期待?打印0 后,i 将变为 1,因此您的 if 将为 Truei %2 != 0 为 True,因此 i 将变为 i = i+3 =4
  • 对不起,假设循环从 2 for i in range(2,100)

标签: python python-2.7


【解决方案1】:

据我了解,这就是您想要做的。但这不是您想要的输出。但我猜你的预期输出不是你的逻辑输出。

i = 2
while i<100:
    print(i)
    if i % 2 != 0:
        i += 3
    else:
        i += 1

输出:

2
3
6
7
10
11
...

【讨论】:

  • 谢谢,对不起,我的问题陈述令人困惑,我们如何在 for 循环中得到相同的结果?
【解决方案2】:

for 循环不允许您跳过多个循环。你只能使用

  • continue 跳过当前周期的剩余部分
  • break 跳过所有剩余循环并退出循环

你需要的是一个while循环。在 for 循环定义一个从起始值递增到限制的数字的情况下,while 循环只需要一个退出条件。

试试这个:

i = 2
while i < 100:
  if i % 2 == 0:
    i += 4
  else:
    i += 1

【讨论】:

    【解决方案3】:
     j = 0
     for i in range(j,100):
        if i%2 !=0:
          j = i+3
          continue
        print(j)
    

    输出: 0 4 6 8 10 12 14 16 18 20 . . . .

    【讨论】:

      【解决方案4】:

      实际上i = i+3for 循环中无效。你可能认为i 变成了2+3=5,但在下一次迭代中i 将变成3。为此,您需要使用 hile 循环。这将为您解决问题:

      i = 2
      while i <= 100:
          print(i)
          i = (i + 3) if i % 2 != 0 else (i + 1)
      

      【讨论】:

        【解决方案5】:

        使用 for 循环的解决方案(虽然我认为使用 while 循环更好):

        skipping = 0
        for i in range(2, 100):
            if skipping:
                skipping -= 1
                continue
            if i % 2 != 0:
                print(i)
                skipping = 2
            else:
                print(i)
        

        输出:

        2
        3
        6
        7
        10
        11
        ...
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-10-05
          • 2021-09-30
          • 1970-01-01
          • 2019-11-23
          • 2016-03-18
          • 1970-01-01
          • 2021-08-22
          相关资源
          最近更新 更多