🎯 학습 목표
- import로 표준 모듈을 가져와 쓴다.
- try/except로 예외를 처리한다.
- with 문으로 파일을 안전하게 읽고 쓴다.
📖 모듈 — 남이 만든 기능 가져다 쓰기
모듈(module)은 함수·변수를 모아놓은 파이썬 파일입니다. 파이썬에는 별도 설치 없이 바로 쓰는 표준 라이브러리가 풍부합니다. import로 불러옵니다.
import math
print(math.sqrt(16)) # 4.0 제곱근
print(math.pi) # 3.141592...
import random
print(random.randint(1, 6)) # 1~6 주사위
print(random.choice(["가","나","다"])) # 무작위 하나
from datetime import datetime # 모듈에서 일부만 가져오기
print(datetime.now()) # 현재 시각
외부 라이브러리는 pip install 패키지명으로 설치 후 같은 방식으로 import합니다.
📖 예외 처리 — 에러로 멈추지 않게
실행 중 문제가 생기면 파이썬은 예외(Exception)를 발생시키고 프로그램을 멈춥니다. 예상되는 문제는 try/except로 잡아 프로그램이 죽지 않게 처리합니다.
try:
age = int(input("나이: ")) # 숫자가 아니면 ValueError
print(100 / age) # 0이면 ZeroDivisionError
except ValueError:
print("숫자를 입력하세요.")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
except Exception as e:
print("알 수 없는 오류:", e) # 그 외 모든 예외
else:
print("정상 처리 완료") # 예외가 없을 때만 실행
finally:
print("끝 (항상 실행)") # 예외 여부와 무관하게 항상
💻 파일 쓰기와 읽기 — with
# 쓰기 ('w'=새로쓰기, 'a'=이어쓰기). encoding은 한글 위해 utf-8 권장
with open("memo.txt", "w", encoding="utf-8") as f:
f.write("첫 줄n")
f.write("둘째 줄n")
# with 블록을 벗어나면 파일이 자동으로 닫힘 (close 불필요)
# 읽기 ('r')
with open("memo.txt", "r", encoding="utf-8") as f:
content = f.read() # 전체를 한 문자열로
print(content)
# 한 줄씩 읽기
with open("memo.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip()) # 줄 끝 개행 제거
📖 왜 with를 쓰나?
파일은 열면 반드시 닫아야 합니다. with 문을 쓰면 블록이 끝날 때(에러가 나도) 파일을 자동으로 닫아줘 안전합니다. 직접 open/close를 관리하다 닫기를 빠뜨리는 실수를 막아줍니다.
⚠️ 주의사항
open(..., "w")는 기존 파일 내용을 전부 지우고 새로 씁니다. 이어 붙이려면"a"(append) 모드를 쓰세요.- 한글이 깨지면
encoding="utf-8"을 지정했는지 확인하세요(특히 윈도우). except:로 모든 예외를 뭉뚱그려 잡으면 진짜 버그를 숨길 수 있습니다. 가능하면 구체적인 예외 종류를 지정하세요.
💡 팁
- 표준 라이브러리만으로도 날짜·수학·랜덤·JSON·파일 처리 등 많은 일을 할 수 있습니다. 새 기능이 필요하면 “파이썬 표준 라이브러리”부터 찾아보세요.
- JSON 데이터는
import json후json.load/json.dump로 딕셔너리와 쉽게 변환됩니다(3강의 dict와 연결).