파이썬은 문법이 간단해서 많은 사람들이 쉽게 시작하지만,
오히려 그 심플함 때문에 놓치기 쉬운 함정들도 많습니다.
이번 글에서는 파이썬을 공부하거나 실무에서 사용할 때 주의해야 할 대표적인 실수 8가지를 소개할게요.
이 글을 통해 여러분의 실수를 미리 예방할 수 있길 바랍니다! 💡
❗ 1. 들여쓰기(Indentation)는 생명이다
파이썬은 들여쓰기가 문법입니다.
중괄호 {} 대신 공백으로 코드 블록을 구분하기 때문에, 들여쓰기 하나 잘못하면 에러가 납니다.
if True:
print("들여쓰기 없으면 오류!") # 오류 발생
✅ 해결 방법: 보통 스페이스 4칸을 사용하고, 탭과 스페이스를 섞지 않도록 주의하세요!
❗ 2. 리스트 vs 얕은 복사(shallow copy)
a = [1, 2, 3]
b = a
b[0] = 100
print(a) # [100, 2, 3]
b = a는 a와 b가 같은 리스트 객체를 참조하게 돼요. 그래서 하나를 바꾸면 둘 다 바뀝니다.
✅ 해결 방법: 복사할 때는 .copy() 또는 list() 사용!
b = a.copy()
❗ 3. 기본 인자를 리스트로 설정하는 실수
def add_item(item, my_list=[]):
my_list.append(item)
return my_list
위 코드는 처음엔 괜찮아 보여도, 여러 번 호출하면 리스트가 계속 누적됩니다.
✅ 해결 방법: 기본 인자는 None으로 설정하고 내부에서 처리!
def add_item(item, my_list=None):
if my_list is None:
my_list = []
my_list.append(item)
return my_list
❗ 4. is 와 == 헷갈림
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True
print(a is b) # False
- == : 값이 같은지
- is : 객체가 같은 메모리를 참조하는지
✅ 대부분은 ==을 사용해야 해요!
❗ 5. 타입을 무시한 연산
num = "10"
print(num + 5) # 오류!
문자열 "10"과 숫자 5는 더할 수 없습니다.
✅ 해결 방법: 형 변환을 명확히 하기 (int(), str() 등)
print(int(num) + 5) # 15
❗ 6. 무한 루프 주의
while True:
print("끝이 없다...")
조건문을 잘못 설정하면 무한 루프에 빠지게 됩니다.
특히 while문에서 변수 증가/감소를 빼먹는 실수가 많아요.
✅ 항상 탈출 조건을 명확히 쓰는 습관을 들이세요!
❗ 7. 변수명이 라이브러리 이름과 겹침
list = [1, 2, 3]
print(list("123")) # TypeError 발생
list는 파이썬 내장 함수인데 변수명으로 써버려서 에러가 나죠.
✅ 내장 함수나 라이브러리 이름은 변수명으로 사용하지 않도록 주의!
❗ 8. 인코딩 문제 (특히 한글!)
with open("text.txt", "r") as f:
data = f.read()
한글이 들어간 파일을 열 때 인코딩 오류가 발생할 수 있어요. 특히 윈도우에서 많이 겪습니다.
✅ 해결 방법: encoding="utf-8" 명시적으로 지정
with open("text.txt", "r", encoding="utf-8") as f:
data = f.read()
🧠 마무리하며
파이썬은 쉽지만, 자칫하면 쉽게 실수할 수 있는 부분들이 많습니다.
오늘 소개한 내용을 잘 숙지해두면 코드 품질이 훨씬 좋아지고,
디버깅에 소모하는 시간도 줄일 수 있어요.
'기타 기술 > Python' 카테고리의 다른 글
왜 파이썬은 딥러닝, 머신러닝, 데이터 과학 분야에서 가장 많이 사용될까? (0) | 2025.04.11 |
---|---|
Python과 데이터: 데이터를 다루는 가장 쉬운 방법 (0) | 2025.04.10 |
PyAutoGUI 모듈 오류 해결 (0) | 2025.04.09 |
🐍 파이썬을 배우는 사람이라면 꼭 알아야 할 핵심 개념 (1) | 2025.04.08 |
🐍 파이썬(Python)이 뭐길래 다들 쓰는 걸까? (0) | 2025.04.08 |