Python for循环问题

Joe*_*unk 26 python loops for-loop

我想知道如何在python中实现以下功能:

for( int i = 0; cond...; i++)
  if cond...
    i++; //to skip an run-through
Run Code Online (Sandbox Code Playgroud)

我试了这个没有运气.

for i in range(whatever):
  if cond... :
    i += 1
Run Code Online (Sandbox Code Playgroud)

jak*_*man 40

Python的for循环是不同的. i每次循环都会重新分配给下一个值.

以下将做你想要的,因为它采用了C++正在做的文字版本:

i = 0
while i < some_value:
    if cond...:
        i+=1
    ...code...
    i+=1
Run Code Online (Sandbox Code Playgroud)

原因如下:

在C++中,以下代码段是等效的:

for(..a..; ..b..; ..c..) {
    ...code...
}
Run Code Online (Sandbox Code Playgroud)

..a..
while(..b..) {
     ..code..
     ..c..
}
Run Code Online (Sandbox Code Playgroud)

而python for循环看起来像:

for x in ..a..:
    ..code..
Run Code Online (Sandbox Code Playgroud)

变成

my_iter = iter(..a..)
while (my_iter is not empty):
    x = my_iter.next()
    ..code..
Run Code Online (Sandbox Code Playgroud)


tux*_*21b 11

有一个continue关键字跳过当前迭代并前进到下一个(以及一个break跳过所有循环迭代并退出循环的关键字):

for i in range(10):
    if i % 2 == 0:
      # skip even numbers
      continue 
    print i
Run Code Online (Sandbox Code Playgroud)

  • 你的概念是正确的,但你的措辞是错误的.继续不要跳过下一次迭代,它会进入下一次迭代 (5认同)