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), "개")
실행 결과
①
②
③
④