>백엔드 개발 >파이썬 튜토리얼 >Python에서 여러 루프를 중단하기 위한 아이디어를 검토합니다.

Python에서 여러 루프를 중단하기 위한 아이디어를 검토합니다.

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼앞으로
2019-09-26 17:37:092225검색

Python에서 여러 루프를 중단하기 위한 아이디어를 검토합니다.

I. 단일 루프에서 벗어나기

어떤 프로그래밍 언어이든 간에 열거할 때와 같이 루프 요구 사항을 벗어나면 조건을 충족하는 숫자가 발견되면 종료됩니다. 단일 루프에서 벗어나는 것은 다음과 같이 매우 간단합니다:

for i in range(10):
    if i > 5:
        print i
        break

그러나 때로는 여러 루프에서 점프해야 하고 break는 다음과 같이 하나의 루프에서만 점프할 수 있습니다: #🎜🎜 #

for i in range(10):
    for j in range(10):
        if i+j > 5:
            print i,j
            break

이러한 종류의 코드는 i+j > 5인 그룹이 발견되었을 때 중지한다는 의미가 아니라 연속으로 10개의 그룹을 찾는다는 의미입니다. break는 범위(10)의 for j 밖으로만 점프하기 때문입니다. 고리. 그렇다면 다중가중 범주에서 어떻게 벗어날 수 있을까요? 여기에 메모를 작성하세요.

관련 권장사항: "

Python Tutorial"

II. 다중 루프에서 벗어나기 #🎜 🎜#사실 Python의 표준 구문은 다중 루프에서 벗어나는 것을 지원하지 않으므로 일반적인 아이디어는 함수 작성, 데카르트 곱 사용 및 디버깅 사용과 같습니다.

물론 가장 일반적인 아이디어는 변수 표기법을 사용하는 것입니다.

def f():
    flag = 0
    for i in range(10):
        for j in range(i):
            if i+j>5:
                print i,j
                flag = 1
                break
        if flag == 1:
            break
if __name__ == "__main__":
    f()

함수로 작성됨

In Python , 함수 return 문에 도달하면 중지되므로 이 기능을 사용하여 함수에 함수를 작성하여 여러 루프를 종료할 수 있습니다.

예:

def work():
    for i in range(10):
        for j in range(10):
            if i+j > 5:
                return i,j
print work()

데카르트 곱 사용

이 방법의 아이디어는 단일 주문 루프에서 벗어날 수 있으면 여러 루프를 단일 루프로 다시 작성하겠습니다. 그러면 itertools에서 데카르트 곱 함수 제품을 사용할 수 있습니다. 예:

from itertools import product
for i,j in product(range(10), range(10)):
    if i+j > 5:
        print i,j
        break

디버그 사용 mode

데카르트 곱 방법은 매우 영리하고 간결하지만 각 루프의 세트가 독립적인 경우에만 사용할 수 있습니다. 루프의 각 레이어가 이전 레이어와 밀접하게 관련되어 있는 경우에만 사용할 수 있습니다. , 이 방법은 사용할 수 없습니다. 이때 첫 번째 방법을 사용하여 함수로 작성할 수도 있습니다. 또한 디버깅 모드를 사용할 수도 있습니다. 이는 디버깅 모드에서 오류가 발생하자마자 종료되는 원리를 활용합니다.

class Found(Exception):
    pass
try:
    for i in range(10):
        for j in range(i): #第二重循环跟第一重有关
            if i + j > 5:
                raise Found
except Found:
    print i, j

위 내용은 Python에서 여러 루프를 중단하기 위한 아이디어를 검토합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제