콘텐츠로 이동

7단원 과제 정답: 모듈 & 패키지


문제 1. import 방식 차이

① 4
② 4.0
③ 3.141592653589793
④ 4
⑤ 24

해설

항목 결과
math.floor(4.9) 4 — 내림
sqrt(16) 4.0float 반환
m.pi 3.141592... — 전체 값
ceil(3.1) 4 — 올림
math.factorial(4) 244! = 4×3×2×1

문제 2. random 모듈

random.seed(42)로 고정된 결과:

① 1
② 10 (또는 seed에 따라 다름)
③ cherry (또는 seed에 따라 다름)
④ <class 'float'>
⑤ True

정확한 ①~③ 값은 파이썬 버전에 따라 다를 수 있지만 seed(42)로 실행마다 동일합니다.

⑤가 항상 True인 이유: random.random()은 항상 0.0 ≤ x < 1.0 범위의 float을 반환하도록 정의되어 있기 때문입니다.


문제 3. datetime 모듈

① 2026
② 5
③ 2026-05-23
④ 14:30
⑤ <class 'datetime.datetime'>

해설

strftime 포맷: %Y=4자리 연도, %m=2자리 월, %d=2자리 일, %H=시(24h), %M=분


문제 4. __name__ == "__main__"

main.py 실행 시:

① greet 모듈 로드됨
② Hello, Python!

greet.py 직접 실행 시:

③ greet 모듈 로드됨
④ Hello, World!
⑤ 직접 실행

해설

import greet 시: 모듈 전체가 실행되지만 __name__"greet"이므로 if __name__ == "__main__": 블록은 건너뜁니다. python greet.py 실행 시: __name__"__main__"이므로 if 블록도 실행됩니다.


문제 5. os 모듈

① data/files/report.txt
② images/photo.jpg
③ True
④ report.txt
⑤ data/files

해설

os.path.join은 OS에 맞는 경로 구분자를 자동 사용합니다 (Linux: /, Windows: \). basename: 마지막 파일/폴더 이름 dirname: 부모 디렉토리 경로


문제 6. json 모듈

① <class 'str'>
② <class 'dict'>
③ Alice
④ 85
⑤ True

해설

json.dumps() → Python 객체를 JSON 문자열로 변환 json.loads() → JSON 문자열을 Python 객체로 변환 "active": True → JSON에서도 true로 저장되고, 파싱 시 Python True로 복원됩니다.


문제 7. math 모듈 활용

① 2.1: floor=2, ceil=3
② 2.5: floor=2, ceil=3
③ 2.9: floor=2, ceil=3
④ -1.4: floor=-2, ceil=-1
⑤ True
⑥ 3.142

해설

음수 floor(-1.4) = -2 (더 작은 정수), ceil(-1.4) = -1 (더 큰 정수) — 양수와 반대 방향임에 주의.


문제 8. 로또 번호 생성기

import random

def lotto():
    numbers = random.sample(range(1, 46), 6)
    return sorted(numbers)

print("로또:", lotto())

빈칸 정답

빈칸 정답 이유
______ random import 모듈 가져오기
random.______ sample 중복 없이 n개 선택
return ______ sorted 오름차순 정렬

문제 9. 모듈 만들기

# converter.py
def km_to_mile(km):
    return km * 0.6214

def celsius_to_fahrenheit(c):
    return c * 9 / 5 + 32

def bmi(height_m, weight_kg):
    return weight_kg / height_m ** 2

빈칸 정답

빈칸 정답
______ * 0.6214 km
c * 9 / 5 ______ 32 +
______ / height_m ______ 2 weight_kg, **
______ converter import

문제 10. JSON 저장 & 로드

import json

students = [
    {"name": "Alice", "score": 90},
    {"name": "Bob",   "score": 75},
]

with open("students.json", "w", encoding="utf-8") as f:
    json.dump(students, f, ensure_ascii=False, indent=2)

with open("students.json", "r", encoding="utf-8") as f:
    loaded = json.load(f)

for s in loaded:
    print(f"{s['name']}: {s['score']}")

빈칸 정답

빈칸 정답 이유
저장 모드 "w" 쓰기 모드
json.______ (저장) dump 파일에 JSON 저장
로드 모드 "r" 읽기 모드
json.______ (로드) load 파일에서 JSON 읽기
s['______'] name, score 딕셔너리 키