【问题标题】:how can i control the iteration of the for loop in python [duplicate]我如何控制python中for循环的迭代[重复]
【发布时间】:2020-08-21 05:06:07
【问题描述】:

我来自 c++ 语言,如果我在循环中更改“i”的值,那么它会影响循环的迭代,但它不会在 python 中发生。

例如,在 C++ 中:

for(int i=0; i<10; i++){
    cout<<i<<" ";
    if(i==5)
        i = 8;
}

在上面的代码中,当 'i' 的值达到 5 时,它变为 8,再经过一次迭代后,它变为 9,然后循环结束。 上述代码的输出是-

0 1 2 3 4 5 9

但是当我在 python 中编写类似的代码时,它不会影响迭代,并且循环会运行 10 次。
python中的代码是-

for i in range(0, 10):
    if i == 5:
        i = 8
    print(i, end=" ")

这段代码的输出是 -

0 1 2 3 4 8 6 7 8 9 

它只是将 5 的值更改为 8,而不是更改循环迭代。

如何在python中实现c++结果,请帮忙!
在此先感谢:)

【问题讨论】:

标签: python c++ loops


【解决方案1】:

当您说i in range(0,10) 时,您正在生成一个[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 列表,您稍后将对其进行迭代,这意味着i 的值没有用作递增的int,而是您正在迭代数组.

最好的解决方案可能是从 for 循环改为 while 循环。

i = 0
while i < 10:
    if i == 5:
        i = 8
    print(i)
    i += 1

【讨论】:

    【解决方案2】:

    你可以试试while循环:

    i = 0
    while i < 10:
        if i == 6:
            i = 9
        print(i)
        i += 1
    

    输出:

    0 1 2 3 4 5 9
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      • 2016-08-03
      • 2016-03-15
      • 2016-08-07
      相关资源
      最近更新 更多