【发布时间】:2016-07-02 19:32:14
【问题描述】:
我之前用 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 次
编辑:我可以将 range 函数的第三个参数用于一般用途,但是如果我想跳过一些迭代以说明是否只有某个条件为真。例如
for(int i=0; i<10;i++)
{
if(i%2)i+=1;
std::cout<<i<<std::endl
}
【问题讨论】:
-
你可能想使用
range第三个参数来指定步长。如果这不适合您,请考虑使用常规的while循环。 -
在 Python 中执行此操作的最佳方法取决于您为什么要跳过 5 次迭代。您不会真正编写像您的 C++ 示例那样的代码。有时,玩具的简化会掩盖真正的主题。