相关疑难解决方法(0)

为什么python在for循环之后使用'else'?

我理解这个结构是如何工作的:

for i in range(10):
    print(i)

    if i == 9:
        print("Too big - I'm giving up!")
        break;
else:
    print("Completed successfully")
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么else在这里用作关键字,因为它表明有问题的代码仅在for块未完成时运行,这与它的作用相反!无论我如何看待它,我的大脑都无法从for语句无缝地进展到else块.对我来说,continue或者continuewith更有意义(我正在努力训练自己阅读它).

我想知道Python编码器如何在他们的脑海中读取这个结构(或者如果你愿意的话,大声朗读).也许我错过了一些会让这些代码块更容易破译的东西?

python for-loop if-statement for-else

417
推荐指数
16
解决办法
14万
查看次数

关于Python while语句的Else子句

我注意到以下代码在Python中是合法的.我的问题是为什么?有具体原因吗?

n = 5
while n != 0:
    print n
    n -= 1
else:
    print "what the..."
Run Code Online (Sandbox Code Playgroud)

python syntax if-statement while-loop

293
推荐指数
7
解决办法
17万
查看次数

我可以使用break来退出多个嵌套for循环吗?

是否可以使用该break函数退出几个嵌套for循环?如果是这样,你会怎么做呢?你还可以控制休息退出的循环次数吗?

c++ for-loop break nested-loops

282
推荐指数
12
解决办法
21万
查看次数

打破嵌套循环

可能重复:
如何在Python中打破多个循环?

是否有一种更容易的方法来打破嵌套循环而不是抛出异常?(在Perl中,您可以为每个循环指定标签,并至少继续外循环.)

for x in range(10):
    for y in range(10):
        print x*y
        if x*y > 50:
            "break both loops"
Run Code Online (Sandbox Code Playgroud)

也就是说,有一个更好的方式:

class BreakIt(Exception): pass

try:
    for x in range(10):
        for y in range(10):
            print x*y
            if x*y > 50:
                raise BreakIt
except BreakIt:
    pass
Run Code Online (Sandbox Code Playgroud)

python loops

250
推荐指数
7
解决办法
31万
查看次数

如何在Python中的嵌套循环中继续

你怎么能continue在Python中说两个嵌套循环的父循环?

for a in b:
    for c in d:
        for e in f:
            if somecondition:
                <continue the for a in b loop?>
Run Code Online (Sandbox Code Playgroud)

我知道你可以在大多数情况下避免这种情况但可以在Python中完成吗?

python

46
推荐指数
4
解决办法
5万
查看次数

打破Python中的嵌套(双)循环

我使用以下方法来破坏Python中的双循环.

for word1 in buf1:
    find = False
    for word2 in buf2:
        ...
        if res == res1:
            print "BINGO " + word1 + ":" + word2
            find = True
    if find:
        break
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来打破双循环?

python nested-loops

38
推荐指数
4
解决办法
5万
查看次数

Python - 所有循环中的`break`

我正在使用多个嵌套for循环.在最后一个循环中有一个if声明.当评估True所有for循环应该停止,但这不会发生.它只break离开最里面的for循环,而不是继续前进.如果break遇到语句,我需要所有循环停止.

我的代码:

for i in range(1, 1001):
    for i2 in range(i, 1001):
        for i3 in range(i2, 1001):
            if i*i + i2*i2 == i3*i3 and i + i2 + i3 == 1000:
                print i*i2*i3
                break
Run Code Online (Sandbox Code Playgroud)

python loops for-loop break python-2.7

24
推荐指数
3
解决办法
4万
查看次数

打破两个循环

可能重复:
如何在Python中打破多个循环?

是否有可能在Python中打破两个for循环?

for i in range(1,100):  
    for j in range(1,100):  
        break ALL the loops!
Run Code Online (Sandbox Code Playgroud)

python loops for-loop

10
推荐指数
2
解决办法
2万
查看次数

在if语句中断开循环

目前在打破这个for循环时遇到了麻烦.如果在此列表中找不到变量,我想打破它,因此它可以移动另外两个for循环.它期望for循环顶部的缩进块,但是如果我改变循环break开始的位置for,它就不起作用.救命!

while cyclenumb <= 10000:

    for x in userpassword[k]:
        for z in lowercaselist:
            if x in z:
                newpasswordlist.append(z)
                k +=1
                break
        else:

    for x in userpassword[k]:
        for z in uppercaselist:
            if x in z:
                newpasswordlist.append(z)
                k +=1
                break
        else:
Run Code Online (Sandbox Code Playgroud)

python for-loop if-statement list break

10
推荐指数
1
解决办法
4万
查看次数

与Python相反的......其他

以下python代码将导致打印n(14),因为for循环已完成.

for n in range(15):
    if n == 100:
        break
else:
    print(n)
Run Code Online (Sandbox Code Playgroud)

但是,我想要的是与此相反.有没有办法做一个... else(或while ... else)循环,但只有在循环确实中断时才执行else代码?

python for-loop if-statement python-3.x

6
推荐指数
2
解决办法
2591
查看次数