我之前用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
}
答案 0 :(得分:6)
如果要在条件为真时跳过迭代,请使用continue
:
for i in range(10):
if i % 2:
continue
print(i)
答案 1 :(得分:5)
我知道你在想什么,但是python内置了一些内容,允许你在range()
函数中设置迭代步骤。 Here是range()
上的官方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