在Python中更改for循环中的迭代变量

发布于 2021-01-29 16:12:02

这个问题已经在这里有了答案

for循环中python变量的范围 (10个答案)

7年前关闭。

我正在尝试做一些简单的事情,例如更改要遍历(i)的变量,但是在Python和C中我都得到了不同的行为。

在Python中,

for i in range(10):
    print i,
    if i == 2:
        i = 4;

我得到了0 1 2 3 4 5 6 7 8 9,但是等效于C:

int i;
for (i = 0; i < 10; i++) {
    printf("%d", i);
    if (i == 2)
        i = 4;
}

我得到了01256789(请注意,数字3和4不会出现,正如预期的那样)。

这里发生了什么事?

关注者
0
被浏览
204
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您没有按照自己的想法去做。
    例如:

    for i in range(10):
    

    无论如何,它将始终设置i为范围内的下一个元素0-10

    如果要在python中执行等效操作,则可以执行以下操作:

    i = 0
    while i < 10:
        print(i)
        if i == 2:
            i = 4
        else:      # these line are
            i += 1 # the correct way
        i += 1 # note that this is wrong if you want 1,2,4,5,6,7,8,9
    

    如果您正试图将其转换为C,那么你必须记住,i++for循环会一直添加到i



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看