Search
🚸

파이썬 에러 TOP 8

대분류
기타
소분류
Trouble Shooting
설명
오류 메시지 종류와 해결 방법
유형
Python
부유형
Error
주요 레퍼런스
https://www.codeit.kr/tutorials/0/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%97%90%EB%9F%AC-top-7-%EC%98%A4%EB%A5%98-%EB%A9%94%EC%8B%9C%EC%A7%80-%EC%A2%85%EB%A5%98%EC%99%80-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95
최종 편집 일시
2024/10/29 08:31
생성 일시
2024/10/11 07:35
12 more properties

TypeError

파이썬 코드를 작성하다 보면 가장 흔히 만나게 되는 에러
데이터 타입과 관련된 에러
잘못된 데이터의 유형이 연산이나 함수에 적용될 때 발생
TypeError에 뒤이어 나오는 내용은 어떤 유형이 불일치하는지에 대한 세부 정보를 제공

예제

1.
TypeError: 'int' object is not subscriptable
정수형을 인덱싱 할 수 없다는 의미. 리스트나 문자열이 아닌 정수형을 인덱싱하려고 할 때 발생
2.
TypeError: 'float' object cannot be interpreted as an integer
'float' 는 정수로 인식될 수 없다는 의미. 꼭 정수형을 넘겨줘야되는 파라미터에 실수형을 넘겨주면 발생
주로 range 함수 내에 정수형(int)이 아닌 실수형(float)를 입력하면 만나게 되는 에러
3.
TypeError: list indices must be integers or slices, not str
리스트의 인덱스는 문자형이 아니라 정수형이나 슬라이스(범위)여야 한다는 의미
파이썬의 리스트를 인덱싱할 때 정수가 아닌 문자열로 인덱싱할 때 발생

SyntaxError

프로그램 구문이 잘못 쓰였을 경우 발생하는 에러
주로 철자가 정확하지 않거나 따옴표, 괄호, 콜론 등을 빠뜨렸을 때 발생

예제

1.
SyntaxError: invalid syntax
파이썬에서 쓰지 않는 문법이라는 의미. 문법적인 에러가 있을 때 발생
2.
SyntaxError: EOL while scanning string literal
문자열을 스캔하던 도중 ‘라인이 끝나버렸다(EOL=End of Line)’는 의미. 따옴표가 누락되었을 경우 발생.

IndexError

리스트의 범위를 벗어난 인덱스에 접근하려 하는 경우 발생하는 에러
해당 에러를 만났을 때는 리스트의 사이즈 얼마인지, 접근하려고 한 인덱스가 리스트의 사이즈보다 크지 않은지 확인해보면 좋다.

예제

IndexError: list index out of range
리스트의 인덱스가 범위를 벗어났다는 의미

NameError

사용하려는 로컬 또는 글로벌 변수의 이름을 찾을 수 없을 때 발생하는 에러
NameError에 뒤이어 나오는 내용은 찾을 수 없는 이름이 무엇인지 알려준다.
해당 에러를 만났을 때는 변수의 이름이 제대로 지정되었는지 확인해야 한다.
주로 들여쓰기를 제대로 하지 않아서 발생하는 경우가 많다.

예제

NameError: name 'honey' is not defined
‘honey’이라는 이름의 변수가 정의되지 않았다는 의미
변수가 제대로 선언되었는지 확인 필요

AttributeError

속성 참조 또는 할당이 실패하면 발생하는 에러
NameError 와 유사하게 속성의 이름을 잘못 썼을 때 발생하는 경우가 많다.

예제

AttributeError: module '' has no attribute ''
Import한 모듈의 명령어를 잘못 입력했다는 의미
모듈의 속성 이름이 잘못되지 않았는지 확인

ValueError

함수가 받은 파라미터가 올바른 자료형이나, 부적절한 값일 때 발생

예제

1.
ValueError: min() arg is an empty sequenceValueError: max() arg is an empty sequence
min() 함수나 max()함수의 인자로 빈 리스트를 제공해줬다는 의미.
2.
ValueError: invalid literal for int() with
정수, 소수, 문자열 등 다른 자료형 사이에서 값을 변환할 때 변환이 불가능하면 발생.
예를 들어, a = int(“codeit”)와 같은 문장은 문자열 codeit을 정수로 변환할 수 없으므로 에러가 발생.

ImportError

Import 문에서 모듈을 로드하는 과정에서 문제가 있을 때 발생하는 에러
주로 파일명이 모듈명과 동일하여 발생하는 경우가 많다.

예제

ImportError: attempted relative import with no known parent package
상위 패키지의 위치를 알 수 없다는 의미.

ModulenotfoundError

ImportError의 하위 클래스로 모듈을 찾을 수 없을 때 발생하는 에러
실전 프로젝트를 진행할 때 종종 만나게 되는 에러

예제

ModuleNotFoundError: No module named 'module_name'
‘module_name’이라는 모듈을 찾을 수 없다는 의미.