기타 기술/Python

⚠️ 파이썬 초보자가 자주 실수하는 8가지! (주의해야 할 점 정리)

hawon6691 2025. 4. 9. 18:37
728x90

파이썬은 문법이 간단해서 많은 사람들이 쉽게 시작하지만,
오히려 그 심플함 때문에 놓치기 쉬운 함정들도 많습니다.

이번 글에서는 파이썬을 공부하거나 실무에서 사용할 때 주의해야 할 대표적인 실수 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()

🧠 마무리하며

파이썬은 쉽지만, 자칫하면 쉽게 실수할 수 있는 부분들이 많습니다.
오늘 소개한 내용을 잘 숙지해두면 코드 품질이 훨씬 좋아지고,
디버깅에 소모하는 시간도 줄일 수 있어요.

728x90