| 파일명 | 분류 | 설명 |
|---|---|---|
attribute_error_example.py |
빈출오류 | 객체가 가지고 있지 않은 속성(변수)이나 메서드(함수)를 호출하려 할 때 발생하는 AttributeError를 설명합니다. 변수의 타입을 type() 함수로 확인하고, dir() 함수나 자동완성 기능을 통해 사용 가능한 메서드를 확인하여 오타나 잘못된 메서드 호출을 방지하는 해결 방법을 제시합니다. |
broad_except_clause.py |
빈출오류 | except:나 except Exception:처럼 지나치게 광범위한 예외 처리가 어떻게 버그를 숨기고 디버깅을 어렵게 만드는지 보여줍니다. ZeroDivisionError, TypeError 등 예상되는 특정 예외를 명시적으로 처리하고, 예상치 못한 에러는 except Exception as e:로 잡아 로그를 남기는 올바른 예외 처리 방법을 강조합니다. |
division_operator_mistake.py |
빈출오류 | 파이썬 3에서 명확히 구분되는 실수 나눗셈(/)과 정수 나눗셈(//)의 차이점을 설명합니다. 소수점 이하를 버리는 // 연산자를 실수로 사용하여 평균 계산 등에서 정확한 값을 잃게 되는 흔한 논리적 오류를 예시로 보여주며, 두 연산자를 올바르게 구분하여 사용하는 것의 중요성을 강조합니다. |
float_precision_issue.py |
빈출오류 | 컴퓨터가 0.1과 같은 일부 십진수 소수를 이진수로 정확히 표현하지 못해 발생하는 '부동 소수점 정밀도' 문제를 보여줍니다. 0.1 + 0.2가 0.3과 정확히 같지 않은 이유를 설명하고, math.isclose() 함수나 Decimal 모듈을 사용하여 이러한 오차를 안전하게 처리하는 해결 방법을 제시합니다. |
global_keyword_mistake.py |
빈출오류 | 함수 내에서 전역 변수의 값을 수정하려 할 때 global 키워드를 누락하여 발생하는 UnboundLocalError나 의도치 않은 동작을 설명합니다. 함수 내에서 값을 할당하면 기본적으로 지역 변수로 취급되므로, 전역 변수를 직접 수정하려면 global 선언이 반드시 필요함을 보여줍니다. |
indentation_error_example.py |
빈출오류 | 파이썬의 문법에서 코드 블록을 구분하는 핵심 요소인 '들여쓰기'가 잘못되었을 때 발생하는 IndentationError를 설명합니다. if, for, def 등 새로운 코드 블록이 시작될 때 일관된 들여쓰기를 유지하는 것의 중요성과 흔한 실수 유형을 보여줍니다. |
index_error_example.py |
빈출오류 | 리스트나 튜플 등 시퀀스 자료형에서 범위를 벗어나는 인덱스로 요소에 접근하려 할 때 발생하는 IndexError를 설명합니다. 파이썬의 인덱스는 0부터 시작하며, 마지막 요소의 인덱스는 길이 - 1임을 명심하여 범위를 벗어나지 않도록 주의하는 방법을 알려줍니다. |
inplace_return_none.py |
빈출오류 | 리스트의 .sort()처럼 객체 자체를 직접 수정하는 '제자리(in-place)' 메서드들이 아무것도 반환하지 않는(None을 반환하는) 특징을 설명합니다. 이 반환값을 다른 변수에 할당하여 기존 데이터를 잃어버리는 흔한 실수를 보여주고, 원본을 유지하며 정렬된 새 리스트를 반환하는 sorted() 함수와의 차이점을 강조합니다. |
input_type_casting.py |
빈출오류 | input() 함수는 사용자 입력을 항상 '문자열' 타입으로 반환한다는 점을 강조합니다. 입력받은 값을 숫자 연산에 사용하기 전에 int()나 float()를 이용해 명시적으로 '형 변환(type casting)'을 하지 않으면 TypeError가 발생하는 이유와 올바른 처리 방법을 설명합니다. |
is_vs_equals_mistake.py |
빈출오류 | 값의 동등성(==)과 객체의 정체성(is) 비교의 차이점을 명확히 설명합니다. ==는 두 객체의 내용이 같은지 비교하는 반면, is는 두 변수가 완전히 동일한 메모리 주소의 객체를 가리키는지 확인합니다. 이 둘을 혼동하여 발생하는 미묘한 논리적 오류를 예시로 보여줍니다. |
key_error_example.py |
빈출오류 | 딕셔너리에 존재하지 않는 키로 값을 조회하려 할 때 발생하는 KeyError를 설명합니다. in 키워드로 키의 존재 여부를 미리 확인하거나, 에러 없이 안전하게 기본값을 반환하는 .get() 메서드를 사용하여 이러한 예외를 방지하는 방법을 제시합니다. |
missing_recursion_base_case.py |
빈출오류 | 재귀 함수에서 자기 자신을 무한히 호출하여 최대 재귀 깊이를 초과하는 RecursionError가 발생하는 원인을 설명합니다. 재귀를 멈추게 하는 '탈출 조건(base case)'을 명시하는 것이 재귀 함수 설계에서 가장 중요하며, 이것이 누락될 때 어떤 문제가 생기는지 보여줍니다. |
modifying_list_in_loop.py |
빈출오류 | for 루프로 리스트를 순회하는 도중에 해당 리스트의 요소를 추가하거나 삭제하면 반복 순서가 꼬여 일부 요소를 건너뛰는 문제를 보여줍니다. 원본 리스트의 복사본([:])을 순회하거나, 새로운 리스트를 만드는 방식으로 이 문제를 안전하게 해결하는 방법을 제시합니다. |
mutable_default_argument.py |
빈출오류 | 함수를 정의할 때 기본 인자로 리스트나 딕셔너리 같은 '가변(mutable)' 객체를 사용하면 발생하는 함정을 설명합니다. 기본 인자는 함수 정의 시 단 한 번만 생성되므로, 여러 번 호출 시 동일한 객체가 공유되어 값이 누적되는 문제를 보여주고, 기본값으로 None을 사용하여 해결하는 방법을 제시합니다. |
off_by_one_error.py |
빈출오류 | 반복문의 범위나 인덱스 계산 시 1만큼 더하거나 덜 계산해서 발생하는 매우 흔한 논리적 실수인 'Off-by-one 오류'를 설명합니다. range(start, stop)에서 stop은 포함되지 않는 점 등 파이썬의 특성을 이해하고 경계값을 주의 깊게 확인하는 것의 중요성을 강조합니다. |
shadowing_builtins.py |
빈출오류 | list, dict, sum 등 파이썬의 내장 함수와 동일한 이름으로 변수를 선언하여 원래의 함수를 덮어쓰는(shadowing) 실수를 보여줍니다. 이로 인해 코드 뒷부분에서 원래 함수를 호출하려 할 때 TypeError가 발생하는 원인과, 내장 함수 이름을 변수명으로 사용하지 말아야 하는 이유를 설명합니다. |
shallow_copy_issue.py |
빈출오류 | 중첩 리스트를 복사할 때 발생하는 '얕은 복사(shallow copy)' 문제를 설명합니다. .copy()나 [:]는 가장 바깥쪽 리스트만 새로 만들고 내부 리스트는 원본과 메모리 주소를 공유하므로, 복사본의 내부를 수정하면 원본까지 변경되는 문제를 보여주고, copy.deepcopy()를 사용한 해결책을 제시합니다. |
short_circuit_mistake.py |
빈출오류 | and, or 논리 연산자가 전체 결과가 확정되는 순간 뒤의 표현식을 평가하지 않는 '단축 평가(short-circuit)' 특징을 설명합니다. 이 특징을 모르고 양쪽에 항상 실행될 코드를 넣으면 일부가 실행되지 않는 논리 오류가 발생할 수 있음을 보여주고, 이를 에러 방지에 유용하게 활용하는 방법도 함께 소개합니다. |
type_error_example.py |
빈출오류 | 정수와 문자열을 더하는 것처럼, 서로 다른 데이터 타입 간에 지원되지 않는 연산을 시도할 때 발생하는 TypeError를 설명합니다. str(), int() 등의 형 변환 함수나 f-string을 사용하여 타입을 일치시켜 문제를 해결하는 방법을 보여줍니다. |
value_error_example.py |
빈출오류 | int("hello")처럼, 함수에 전달된 인자의 타입은 맞지만 그 '값'이 적절하지 않을 때 발생하는 ValueError를 설명합니다. try-except 구문을 사용하여 예외를 처리하거나, .isdigit() 같은 메서드로 변환 가능성을 미리 확인하여 에러를 방지하는 방법을 제시합니다. |
common_mistakes
Directory actions
More options
Directory actions
More options
common_mistakes
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||