Python 如何在内部循环得到答案后中断整个嵌套循环

Python 如何在内部循环得到答案后中断整个嵌套循环,python,break,Python,Break,答案被打印两次,这意味着循环在中断后仍然继续。在得到所需的答案后,如何停止整个循环?如果您可以将所有代码放入一个函数中,那么当值为内部循环计算的结果时,可以调用return。它看起来像这样 for a in range(1,1000): for b in range(1,1000): c2 = a**2 + b**2 c = c2**0.5 if a + b + c == 1000: answer = a * b

答案被打印两次,这意味着循环在中断后仍然继续。在得到所需的答案后,如何停止整个循环?

如果您可以将所有代码放入一个函数中,那么当值为内部循环计算的结果时,可以调用return。它看起来像这样

for a in range(1,1000):
    for b in range(1,1000):
        c2 = a**2 + b**2
        c = c2**0.5

        if a + b + c == 1000:
            answer = a * b * c
            print(answer)
            break
def fun():
    for a in range(1,1000):
        for b in range(1,1000):
            c2 = a**2 + b**2
            c = c2**0.5

            if a + b + c == 1000:
                answer = a * b * c
                return answer

print(fun())
或者您可以设置一个标志来停止外部循环,如下所示

for a in range(1,1000):
    for b in range(1,1000):
        c2 = a**2 + b**2
        c = c2**0.5

        if a + b + c == 1000:
            answer = a * b * c
            print(answer)
            break
def fun():
    for a in range(1,1000):
        for b in range(1,1000):
            c2 = a**2 + b**2
            c = c2**0.5

            if a + b + c == 1000:
                answer = a * b * c
                return answer

print(fun())
还有另一种方式:

stop_now = False
for a in range(1, 1000):
    for b in range(1, 1000):
        c2 = a ** 2 + b ** 2
        c = c2 ** 0.5

        if a + b + c == 1000:
            answer = a * b * c
            print(answer)
            stop_now = True
            break
    if stop_now:
        break

在外部循环中使用布尔值来知道内部循环是否找到了它,或者在方法内部执行该操作并使用
return