저는 현재 Lynda Python 튜토리얼을 진행하고 있습니다. 생성자에 대한 섹션에서 다음 코드를 볼 수 있습니다.파이썬 : if-else 사이의 for 루프, how/why는 어떻게 작동합니까?
def isprime(n):
if n == 1:
return False
for x in range(2, n):
if n % x == 0:
return False
else:
return True
처음에는 코드를 포착하지 않았지만 코드를 살펴 보았습니다. else
키워드는 동일한 들여 쓰기 레벨에서 if
사이의 전체 for-loop를가집니다. 놀랍게도 코드는 실행될뿐만 아니라 실제로 올바른 동작을 생성합니다.
for 루프를 간단한 print("Hello, World")
문으로 바꾸려면 예상 된 인터프리터 오류가 발생합니다.
이 구문의 추론은 무엇이었으며 루프 문과 함께 작동하는 이유는 무엇입니까? print()
와 같은 다른 구문은 사용할 수없는 이유는 무엇입니까?
참고로 다음과 같이 코드를 작성해야합니다.
def isprime(n):
if n == 1:
return False
for x in range(2, n):
if n % x == 0:
return False
return True
이 모든 것이 정상적으로 보입니다. 실제로는 break가 루프에서 호출되지 않기 때문에 (두 번째 코드 블록에서) 예상되는 것과 동일합니다. – wim