더북(TheBook)

return 문이 실행되는 즉시 함수는 이후의 문장을 실행하지 않고 종료된다. return 문 뒤에 있는 코드 또는 실행 흐름이 절대로 도달하지 않는 장소에 있는 코드를 죽은 코드(dead code)라고 부른다.

결과가 있는 함수에서는 프로그램에서 도달할 수 있는 모든 경로가 return 문을 만나게 해줘야 한다. 예를 들어

def absolute_value(x):

if x < 0:

return -x

if x > 0:

return x

x가 우연히도 0이 되면 어떤 조건도 참이 되지 않으며 함수는 어떤 return 문도 만나지 않고 종료되므로 이 함수는 올바르지 않다. 실행 흐름이 함수 끝에 도달하면 반환값은 None이 되는데, None0의 절댓값이 아니다.

>>> print( absolute_value(0) )

None

그런데 파이썬은 절댓값을 계산하는 내장 함수 abs를 제공한다.

연습삼아 두 값 x, y를 비교하고, x > y이면 1, x == y이면 0, x < y이면 -1을 반환하는 compare 함수를 작성해보라.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.