[python] 파이썬에서 for 루프에서`continue`와`pass` 사이에 차이점이 있습니까?

두 개의 python 키워드 continuepass예제에서 와 같은 중요한 차이점이 있습니까?

for element in some_list:
    if not element:
        pass

for element in some_list:
    if not element:
        continue

알고 있어야합니까?



답변

예, 그들은 완전히 다른 일을합니다. 다음 루프 반복으로 진행 pass하면서 단순히 아무것도하지 않습니다 continue. 귀하의 예에서 if: 실행 후 다른 명령문을 추가하면 차이가 분명해집니다 . 실행 후이 pass추가 명령문이 실행됩니다. 후에 continue는 그렇지 않습니다.

>>> a = [0, 1, 2]
>>> for element in a:
...     if not element:
...         pass
...     print element
...
0
1
2
>>> for element in a:
...     if not element:
...         continue
...     print element
...
1
2


답변

예, 차이가 있습니다. ” continue다음 pass에 실행할 코드가 없음” 을 의미 하면서 루프가 다음 반복에서 시작되도록 하고 나머지 또는 루프 본문을 계속 진행합니다.

이것을 실행하고 차이점을 확인하십시오.

for element in some_list:
    if not element:
        pass
    print 1 # will print after pass

for element in some_list:
   if not element:
       continue
   print 1 # will not print after continue


답변

continue루프의 상단으로 돌아갑니다. pass처리를 계속합니다.

통과가 루프의 끝에 있으면 흐름이 루프의 맨 위로 돌아 가기 때문에 차이는 무시할 수 있습니다.


답변

귀하의 예에서는 두 문이 루프의 끝에 표시되므로 차이가 없습니다. pass아무것도하지 않는다는 점에서 단순히 자리 표시 자입니다 ( 다음 명령문으로 실행을 전달 함 ). continue반면에, 명확한 목적을 가지고 있습니다 : 루프 가 마치 다시 시작한 것처럼 계속 하도록 지시합니다 .

for element in some_list:
    if not element:
        pass
    print element  

~와는 매우 다릅니다

for element in some_list:
    if not element:
        continue
    print element


답변

그들 사이에 차이가
continue있으며 루프의 현재 반복을 건너 뛰고 다음 반복을 실행합니다.
pass아무것도하지 않습니다. 빈 문 자리 표시 자입니다.
차라리 예를 들어 설명하겠습니다.

>>> for element in some_list:
...     if element == 1:
...         print "Pass executed"
...         pass
...     print element
...
0
Pass executed
1
2

>>> for element in some_list:
...     if element == 1:
...         print "Continue executed"
...         continue
...     print element
...
0
Continue executed
2


답변

예, 차이가 있습니다. Continue실제로 루프의 나머지 현재 반복을 건너 뜁니다 (시작으로 돌아 감). Pass아무것도하지 않는 빈 문장입니다.

참고 항목 파이썬 문서를


답변

이 예에서는 아닙니다. 명령문이 루프에서 마지막 이 아닌 경우 에는 매우 다른 효과가 있습니다.