정보처리기사 실기PythonPython - 클로저난이도 3SHORT_ANSWER

정보처리기사 실기 Python - 클로저 기출문제 #3446

문제

다음 Python 코드의 실행 결과를 쓰시오.

Python
def create_modifier(base): state = {'value': base} def inner(): nonlocal state if state['value'] % 2 == 0: state = {'value': state['value'] * 3} else: state['value'] = state['value'] + 7 return state['value'] return inner func = create_modifier(4) print(func(), func(), func())

정답

12 36 108

12 36 10812, 36, 108

해설

초기 state['value']는 4이다.

  1. 첫 호출: 4는 짝수이므로 state = {'value': 12}가 되고 12 반환
  2. 두 번째 호출: 12는 짝수이므로 state = {'value': 36}이 되고 36 반환
  3. 세 번째 호출: 36은 짝수이므로 state = {'value': 108}이 되고 108 반환 따라서 출력 결과는 12 36 108이다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[정보처리기사 실기] Python - 클로저 Python 기출 #3446 | sqldpass