7단원 쪽지시험 정답: 모듈 & 패키지¶
문제 1. math 모듈¶
① -3
② -2
③ 12.0
④ 1
⑤ 3.14
해설
| 항목 | 식 | 결과 | 이유 |
|---|---|---|---|
| ① | floor(-2.3) |
-3 |
더 작은 정수 방향 (음수 주의!) |
| ② | ceil(-2.3) |
-2 |
더 큰 정수 방향 |
| ③ | sqrt(144) |
12.0 |
float 반환 |
| ④ | factorial(0) |
1 |
0! = 1 (수학적 정의) |
| ⑤ | round(pi, 2) |
3.14 |
소수점 2자리 반올림 |
문제 2. __name__¶
app.py 실행 시:
① utils loaded: __name__ = utils
② 14
해설
from utils import double이 실행되면 utils.py 전체가 로드됩니다.
이때 __name__은 "utils"이므로 if __name__ == "__main__": 블록은 실행되지 않습니다.
double(7) = 7 * 2 = 14
문제 3. json 변환¶
① <class 'str'>
② 3
③ True
④ 2
해설
| 항목 | 식 | 결과 | 이유 |
|---|---|---|---|
| ① | type(text) |
<class 'str'> |
dumps() → 문자열 |
| ② | back["x"] + back["y"][0] |
3 |
1 + 2 |
| ③ | back["z"] is True |
True |
JSON true → Python True |
| ④ | len(back["y"]) |
2 |
리스트 [2, 3]의 길이 |
문제 4. random + sorted¶
seed(0) 결과는 버전마다 다를 수 있지만, 형식은 동일합니다.
① (seed에 따른 3개 리스트, 예: ['b', 'e', 'a'])
② 위 리스트를 알파벳순 정렬 (예: ['a', 'b', 'e'])
③ 5
④ <class 'float'>
sample vs choices 차이:
- random.sample(seq, k): 중복 없이 k개 선택
- random.choices(seq, k=k): 중복 허용하여 k개 선택
문제 5. os.path¶
① home/user/docs/file.txt
② file.txt
③ home/user/docs
④ ('home/user/docs/file', '.txt')
⑤ False
해설
| 함수 | 결과 | 이유 |
|---|---|---|
os.path.join(...) |
home/user/docs/file.txt |
OS 구분자로 연결 |
basename |
file.txt |
마지막 파일명만 |
dirname |
home/user/docs |
부모 디렉토리 |
splitext |
('...file', '.txt') |
확장자 분리 |
exists |
False |
실제 파일 없음 |