Python打破循环

时间:2017-09-21 10:52:16

标签: python

我是Python的新手,但我认为保留词在编程中必须具有相似的含义。但是,我不知道为什么第二个break内的if-condition会打破两个for-loop

我想检查列表是否为空,所以我使用while-loop。假设如果newList仍有元素,它将保留在loop2中。但是,在break中的con2后,它会直接转到loop1,即使newList仍有元素。

while list:
    print ("loop1")
    result = 'n'
    for e in list:
        print ("loop2")
        result = 'n'
        for h in longList:
            print ("loop3")
            for i in e.getList():
                print ("loop4")
                if (i == h.getId()):
                    print ("con1")
                    result = 'y'
                    break
            if (result == 'y'):
                print ("con2")
                break

1 个答案:

答案 0 :(得分:1)

您的link_extractor语句正在从两个循环中断开,因为如果您在执行第一个break语句之前查看,则将值break分配给变量y。在您第一次循环result之后,接下来测试的行是break,然后再次if (result == 'y'):

break

更新: 在Python中,您可以将while newList: print ("loop1") result = 'n' for node in newList: print ("loop2") result = 'n' for parent in parents: print ("loop3") for neighbourId in node.getNeighbours(): print ("loop4") if (neighbourId == parent.getId()): print ("con1") result = 'y' # assignment break # first break if (result == 'y'): # occurs after the first break and will be true print ("con2") break # second break else: print('This loop was not terminated with a break statement') else: print('while loop ended') 子句添加到循环中,并且只有在循环已完全执行时才会运行此else子句,即从未到达else语句