【问题标题】:How to use For loop to cycle through 1 to 10 again and again until the loop is broken in python如何使用For循环一次又一次地循环1到10,直到循环在python中被打破
【发布时间】:2016-01-01 04:24:12
【问题描述】:

我在这里要做的是将loop indexes 1 打印到10,并且在索引达到值10 后,循环应该从头开始。此外,如果condition 1 为真,则循环应该被打破。下面的 C++ 代码代表我想在 python 中实现的算法。

for(int i=1; i<=10; i++)
{
    if(true) break;     //condition 1

    cout << i;
    if(i == 10) i = 0;
}

【问题讨论】:

    标签: python


    【解决方案1】:

    您可以使用itertools.cycle 重复循环遍历一个可迭代对象:

    import itertools
    for i in itertools.cycle(range(10)):
        if condition:
            break
        else:
            print(i)
    

    或者你可以创建一个无限循环的生成器:

    def numbers(num):
        while 1:
            yield from range(num)
    

    然后使用它:

    for i in numbers(10):
        if condition:
            break
        else:
            print(i)
    

    【讨论】:

    • 这不是yield from num(range) range(num) 的产量。请更正答案!
    • 我的换位很糟糕; sorry Broccoli。谢谢 Wombatz。
    【解决方案2】:
    for i in itertools.cycle(range(10)):
        if whatever: break
        print i
    

    【讨论】:

    • 我想你的意思是if condition: break; else: print i
    • 异常“名称'itertools'未定义”
    • 假设您之前做过import itertools
    • 哦。现在它正在工作!谢谢你的提示。但对我来说,python for loop 仍然有点奇怪。这是唯一的选择吗?
    猜你喜欢
    • 1970-01-01
    • 2021-05-22
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多