跳过python中for循环的迭代?

时间:2016-07-02 19:32:14

标签: python c++ for-loop

我之前用C ++编程,但我是Python的新手。我搜索了这个,但我找不到合适的答案。在C ++中,我可以这样做:

for(int i=0; i<10;i++)
{
   i+=5;
   std::cout<<i<<std::endl
}

i的值将是5和11.但是在python中如果我这样做:

for i in range(0,10):
   i+=5
   print i

i的值确实为循环迭代更新,但在下一次迭代中,它将变为1。 虽然我理解在python中,在每次迭代之后,我将包含由range生成的元组/列表中的下一个值,但有没有什么方法可以让它像C ++一样跳过迭代?我真的不想使用next()函数5次

编辑:我可以使用范围函数的第三个参数作为一般用途,但是如果我想跳过一些迭代,如果只有某个条件为真,那该怎么办呢。例如

for(int i=0; i<10;i++)
{
   if(i%2)i+=1;
   std::cout<<i<<std::endl
}

3 个答案:

答案 0 :(得分:6)

如果要在条件为真时跳过迭代,请使用continue

for i in range(10):
    if i % 2:
        continue
    print(i)

答案 1 :(得分:5)

我知道你在想什么,但是python内置了一些内容,允许你在range()函数中设置迭代步骤。 Hererange()上的官方Python文档。

实质上,要在每次迭代后跳过x,你会这样做:

for i in range(start, stop, x + 1):
    # functions and stuff

希望这会有所帮助。

答案 2 :(得分:4)

您可以使用常规while循环。它会看起来不那么好但它能完成这项任务。 例如:

i = 0
while i < 100:
    print i
    if i % 2 == 0:
        i += 5
    i+=1