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 중국어 웹사이트의 기타 관련 기사를 참조하세요!