【问题标题】:In a for loop how to send the i few loops back upon a condition [duplicate]在for循环中,如何根据条件将i几个循环发送回[重复]
【发布时间】:2019-10-22 08:53:03
【问题描述】:

有什么方法可以在几个循环中发送 for look back 的值..

for i in range(10):
    print(i)
    if random.randint(0,9) in [5,6]:
        i = 0

我想做的正是这样的事情。现在在这里我知道 range(10) 首先生成范围 [0,1,2,3,4,5,6,7,8,9] 然后通过将值分配给 i 来遍历它。所以简单地改变 i 的值是行不通的。

但是有没有其他方法可以改变 i 以使下一个循环中的值变为 i+1

【问题讨论】:

  • 似乎只有使用while循环才能达到你想要的效果。
  • 你实际上想要得到什么输出?
  • @Sayse 我认为这里的输出实际上并不重要 - 它可能是数字 0 - 9 或无限输出,或者介于两者之间......我认为 OP 将其用作他们希望实现的控制流示例
  • 我想要做的是与这段代码完全不同的事情。我只是写了这个,以便于阅读。我只是没想到在这种情况下有一个while循环。我会的使用一个while循环,我想我可以让我的函数工作
  • 请放..让我知道是否也可以使用 for 循环来实现

标签: python for-loop


【解决方案1】:

您可以通过在循环外声明i 来执行while 循环,而不是for 循环。

i = 0
while i < 10:
    print(i)
    if random.randint(0,9) in [5,6]:
        i = 0
    else:
        i += 1

有了这个,再加上一些调整,我想你可以得到你想要的结果。

【讨论】:

    【解决方案2】:

    这会起作用

    import random
    i = 0
    while i < 10:
        print(i)
        if random.randint(0,9) in [5,6]:
            i = 0
        else:
            i +=1
    

    编辑:我的错,它确实不起作用,while 循环会。

    【讨论】:

    • 这行不通,因为在下一个循环中 yield 我将被重新分配
    • 是的..这行不通..但我想我明白了..我可以使用while循环做我想做的事
    猜你喜欢
    • 1970-01-01
    • 2013-04-26
    • 2021-11-06
    • 2011-05-14
    • 2012-02-19
    • 2021-08-27
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多