인프런 커뮤니티 질문&답변

hjy648012님의 프로필 이미지
hjy648012

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

11. 함수만들기

함수 만들기

작성

·

201

·

수정됨

0

선생님 마지막 줄의 return True에서 else를 쓰고 안 쓰고는 왜 상관 없는 건가요?  

def isPrime(x):

for i in range(2, x):

if x%i==0:

return False

return True

 

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

hjy648012님, 질문해주신 내용에 대한 답변입니다.

파이썬의 isPrime 함수를 보면, 주어진 x가 소수인지 판별하는 기능을 하는데, 먼저 2부터 x-1까지의 숫자 중 x를 나눌 수 있는 수가 있는지 확인합니다. 만약 x를 나눌 수 있는 수가 있다면 (if x % i == 0), 즉 x가 소수가 아니라면 바로 return False를 하여 함수를 종료합니다.

이 경우는 for 루프가 중간에 return False를 만나 함수가 종료되었기 때문에, 루프 이후의 코드가 실행되지 않습니다. 그리고 만약 for 루프를 모두 실행하여 루프 내에서 return False가 발생하지 않았다면 x는 소수이므로 함수의 최종 반환 값으로 return True를 합니다.

여기서 else를 사용하지 않는 이유는, if 문 내에서 이미 return이 실행되어 함수가 종료되면 else를 사용할 필요가 없기 때문입니다. else 부분에 해당하는 코드는 암묵적으로 나머지 경우가 모두 처리된 후 실행될 것으로 간주되니까요. 따라서 else를 명시적으로 쓰지 않고 바로 return True를 작성해도 논리적으로는 문제가 없습니다.

코딩하실 때 함수가 언제 종료되고 반환값이 어떻게 결정되는지를 명확히 이해하면 else 쓰임에 대해 더 잘 파악하실 수 있을 거예요.

hjy648012님의 프로필 이미지
hjy648012

작성한 질문수

질문하기