콘텐츠로 이동

핵심 SET 05 — 정답 및 해설

문항 1 2 3 4 5 6 7 8 9 10
정답

1. 정답 ③ NameError 기본값 b=a함수가 정의되는 시점에 바로 평가됩니다. 이때 a는 아직 매개변수로서 존재하지 않고(함수 바깥의 전역 이름도 없음) 평가할 수 없는 이름이므로, 함수를 정의하는 줄에서 곧바로 NameError가 발생합니다.

2. 정답 ③ 11 11 global x를 선언하면 함수 안의 x는 전역 변수 x를 그대로 가리킵니다. x += 1로 전역 x11이 되고, foo()의 반환값도 11, 이후 전역 x를 출력해도 11입니다.

3. 정답 ② 100 Account()는 기본값 balance=0으로 생성됩니다. deposit(100)self.balance = 0 + 100 = 100으로 갱신하고 그 값을 반환합니다.

4. 정답 ② 3 from math import pi로 가져온 pi도 결국 평범한 변수일 뿐입니다. pi = 3으로 재대입하면 그냥 일반 변수 재할당이라 에러 없이 3이 출력됩니다.

5. 정답 ② Lee d["users"]는 리스트 [{"name": "Kim"}, {"name": "Lee"}], 그중 인덱스 1{"name": "Lee"}, 그 안의 "name""Lee".

6. 정답 ① [1, 2, 3, 4, 5, 6] 중첩 리스트 컴프리헨션은 바깥 for row in matrix로 각 행을 꺼내고, 안쪽 for n in row로 각 원소를 펼쳐 1차원 리스트로 만듭니다.

7. 정답 ① point 튜플은 불변(immutable)이라 해시 가능하므로 딕셔너리의 키로 사용할 수 있습니다. d[(1, 2)]는 정상적으로 "point"를 반환합니다.

8. 정답 ① True True issubset은 호출한 집합이 인자 집합에 포함되는지 확인합니다. a={1,2}b={1,2,3}의 부분집합이므로 True. issuperset은 반대로 인자를 포함하는지 확인하므로 ba를 포함하니 True.

9. 정답 ② 120 fact(5) = 5*4*3*2*1 = 120인 일반적인 재귀 팩토리얼입니다.

10. 정답 ① 9 from utils.math_utils import add는 패키지 안의 모듈에서 함수를 직접 이름으로 가져오므로 add(4, 5)처럼 점(.) 없이 바로 호출할 수 있습니다. 4 + 5 = 9.