for loop in c++ and python

for loop in c++ and python

本文关键字:and python c++ in loop for      更新时间:2023-10-16

我对python非常陌生。我有一个关于c++和python中for循环的小查询。在c,c++中,如果我们修改变量i,如下例所示,i的新值将反映在下一次迭代中,但在python中的for循环中情况并非如此。那么,当确实需要跳过一些迭代而不实际使用continue等函数时,如何在python中处理它呢。

for loop in c++

for(int i=0;i<5;++i)
{   
   if(i==2)
    i=i+2;
   cout<<i<<endl;
}

Output

0
1
4

for loop in python

for i in range(5):
     if i==2:
        i=i+2
     print i

Output

0
1
4
3
4

我通常建议不要修改C++中的迭代变量,因为这会使代码难以执行。

在python中,如果您事先知道要遍历哪些值(并且这些值不太多!),则可以构建这些值的列表。

for i in [0,1,4]:
    print i

当然,如果您真的必须更改Python中的迭代变量,您可以使用while循环。

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

这是因为在python中,在循环的每次迭代中,变量i都被选为range(5)中的下一个元素。但是,在c++中,变量i由循环增量、(循环内部发生的东西)管理。

i变量在循环的每次迭代中都被设置为range(5)迭代器的输出。尽管您可以在循环中进行修改,但它会被覆盖。

i在每次迭代中重置,这意味着在下一次循环中忽略对i的任何突变。正如Daniel Fischer在评论中所说,如果你想在Python中实现这一点,请使用while循环。

就像:

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

这是因为range(5)[0,1,2,3,4],因此for i in range(5)for i in [0,1,2,3,4]