콘텐츠로 이동

6단원 쪽지시험: 예외 처리 & 파일 처리

이름: ____________

출력 예측: 소스 코드를 보고 실행 결과를 예측하세요.


문제 1. try / else / finally 흐름 (출력 예측)

소스 코드

def process(x):
    try:
        result = 100 / x
    except ZeroDivisionError:
        print("에러")
    else:
        print(f"값: {result}")
    finally:
        print("끝")

process(5)
print("===")
process(0)

실행 결과

①

②

③

④

⑤

문제 2. 파일 모드 + 내용 예측 (출력 예측)

소스 코드

with open("test.txt", "w", encoding="utf-8") as f:
    f.write("A\n")
    f.write("B\n")

with open("test.txt", "a", encoding="utf-8") as f:
    f.write("C\n")

with open("test.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()

print(len(lines))
for line in lines:
    print(line.strip())

실행 결과

①

②

③

④

문제 3. raise + 다중 except (출력 예측)

소스 코드

def check(value):
    try:
        n = int(value)
        if n < 0:
            raise ValueError("음수 불가")
        print(f"OK: {100 // n}")
    except ValueError as e:
        print(f"V: {e}")
    except ZeroDivisionError:
        print("Z: 0 불가")

check("3")
check("-1")
check("abc")
check("0")

실행 결과

①

②

③

④

문제 4. readlines + strip (출력 예측)

note.txt의 내용:

hello
world
python

소스 코드

with open("note.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()

print(type(lines))
print(len(lines))
print(lines[1])
print(lines[1].strip())
print(lines[0] + lines[2])

실행 결과

①

②

③

④

⑤

문제 5. FileNotFoundError + 루프 (출력 예측)

소스 코드

def read_safe(name):
    try:
        with open(name, "r", encoding="utf-8") as f:
            return f.read().strip()
    except FileNotFoundError:
        return f"[{name} 없음]"

files = ["a.txt", "b.txt", "c.txt"]
# a.txt = "Hello", b.txt 없음, c.txt = "World"

results = [read_safe(f) for f in files]
for r in results:
    print(r)
print("총", len(results), "개")

실행 결과

①

②

③

④