728x90
반응형
문제
아래 코드의 실행 결과를 예측하라.
def 함수1(num) :
return num + 4
def 함수2(num) :
num = num + 2
return 함수1(num)
c = 함수2(10)
print(c)
내풀이
결과값
16
정답
8번 함수2가 호출됩니다. 4번 라인으로 파이썬 인터프리터는 이동하고 이때 num에는 10이 바인딩됩니다.
5번 라인 코드를 실행하면 num이 12로 업데이트 됩니다.
6번라인의 코드를 실행하려고 하는데, 함수1이 호출됩니다. 1번 라인의 함수 정의부로 이동하며 num 값은 12로 바인딩됩니다.
2번 라인의 코드가 실행돼서 16이 반환됩니다.
함수1의 동작을 끝마치고 함수 2의 6번 라인으로 돌아오고 함수2도 return을 만나면서 16을 반환합니다.
8번 라인으로 돌아와 c 변수에는 16을 바인딩합니다.
음.....그냥 천천히 대입해가면서 하면 아마 어려움 없으실꺼에요 !
728x90
반응형
'Coding > 초보자를 위한 파이썬 300제' 카테고리의 다른 글
초보자를 위한 파이썬 300제 // 241 현재시간 (0) | 2021.03.16 |
---|---|
초보자를 위한 파이썬 300제 // 240 함수 예측하기 (0) | 2021.03.16 |
초보자를 위한 파이썬 300제 // 238 함수 예측하기 (0) | 2021.03.15 |
초보자를 위한 파이썬 300제 // 237 함수 예측하기 (0) | 2021.03.14 |
초보자를 위한 파이썬 300제 // 236 함수 예측하기 (0) | 2021.03.14 |
댓글