주제: TypeError : 'int' object is not callable
작성: 2023-03-02
코드 예시
시험결과의 값을 input으로 받아 시험점수의 최댓값과 총합계를 구하는 경우
score = input()
my_score = list(map(int, score.split()))
max = max(my_score) # 오류발생
sum = sum(my_score) # 오류발생
위의 코드를 돌리는 경우, TypeError가 발생합니다. 그 이유는 max 및 sum이라는 변수명은 파이썬의 예약어로 중복되기 때문입니다.
이런 경우에는 아래와 같이 다른 변수명으로 변경하면 코드가 문제없이 돌아가게 됩니다.
score = input()
my_score = list(map(int, score.split()))
score_max = max(my_score) # 변수명 변경
socre_sum = sum(my_score) # 변수명 변경
파이썬 예약어(Keyword, Reserved Words)
예약어란 무엇인가?
예약어는 특정기능을 수행하도록 미리 예약되어 있는 단어로서, 이 설정되어 있는 예약어를 변수 이름이나 메서드 이름 등의 다른 식별자 이름으로는 사용이 불가능합니다.
파이썬에서 기본적으로 설정되어있는 예약어는 다음 명령어로 확인할 수 있습니다.
- import keyword
- keyword.kwlist
import keyword
keyword.kwlist
['False',
'None',
'True',
'__peg_parser__',
'and',
'as',
'assert',
'async',
'await',
'break',
'class',
'continue',
'def',
'del',
'elif',
'else',
'except',
'finally',
'for',
'from',
'global',
'if',
'import',
'in',
'is',
'lambda',
'nonlocal',
'not',
'or',
'pass',
'raise',
'return',
'try',
'while',
'with',
'yield']
각 예약어에 대한 간략한 설명은 "더보기"를 클릭하셔서 확인이 가능합니다.
더보기
- True/Fase - 참/거짓을 표현하기 위한 자료형 부울(Boolean, Bool)에는 True, False 딱 2가지의 값만 존재
파이썬에서 숫자 0은 False, 0을 제외한 모든 정수는 True를 의미 - None - 값이 없거나 알 수 없음(absence of a value or a null value)을 의미. NoneType이라는 자료형에 존재
- and
- 둘 다 True면 True,
- 둘 중 하나라도 False가 있으면 False
- 둘 다 False면 False
- as - 모듈 이름 다음에 as 가 올 경우, as 다음의 이름을 임포트한 모듈에 직접 연결
- assert - 프로그램에 디버깅 어서션(debugging assertion)을 삽입하는 편리한 방법
- break- 반복문(while 문 또는 for 문)에서 빠져나올때 쓰는 예약어. 조건이 참이면 반복문 중단
- class - 클래스를 정의할 때 쓰는 예약어
- continue -조건이 참이면 반복문이 계속 진행
- def -새로운 함수를 정의할 때 쓰는 예약어
- del -인덱스를 사용하여 항목을 삭제하는 예약어
- elif -else if의 줄임말. 조건이 거짓이면 elif문이 실행된다. 조건을 여러개 걸고 싶을 때 사용하는 예약어
- else - if문에서 조건이 거짓이면 else로 넘어가 다음 명령이 실행된다. elif는 여러 개 쓸 수 있으나 else는 하나만 쓸 수 있음
- except - 오류에 대한 예외 처리 관련 예약어
- finally - 오류에 대한 예외 처리 관련 예약어
- for -반복문 예약어
- form - 현재 네임스페이스(namespace)로 특정 모듈 중 일부(specific attributes or functions)를 가져옴
- global - 변수 범위(scope) 관련 예약어
- if - 조건문 예약어
- import -현재 네임스페이스(namespace)로 특정 모듈 전체를 가져오는 예약어
- in - 시퀀스 자료형(리스트, 튜플, 문자열 등) 안에 어떤 값이 들어있는지 여부를 확인하는 예약어
- is - 두 값의 참조(레퍼런스, 포인터)를 비교하는 연산자(단, ==는 값을 비교하는 연산자로 is와 다름)
- lambda - 익명 함수를 만드는 연산자
- nonlocal - 변수 범위(scope) 관련 예약어
- not - True, False의 반대값을 출력하는 예약어
- or
- 둘 다 True면 True
- 둘 중 하나라도 True가 있으면 True
- 둘 다 False면 False
- pass - 어떤 조건문 밑에 pass를 쓰면 그 조건을 실행하지 않고 다음 명령을 실행
- raise - 파이썬에서 기본적으로 뜨는 오류 외에 프로그래머가 오류 상황을 직접 정의하여 예외를 발생시켜야 할 때 사용하는 예약어
- return -함수 안에서 사용되어 값을 반환하고 함수문을 빠져나오는 예약어
- try -오류에 대한 예외 처리 관련 예약어
- while - 반복문 예약어
- whith - 예외문 관련, _enter_ 및 _exit_와 함께 쓰이는 예약어
- yield - 함수 안에서 사용되어 return과 비슷한 역할을 하는 예약어. 그러나 yield는 gernerator를 반환한다는 점에서 차이가 있음
728x90
반응형
'Python' 카테고리의 다른 글
[Python] 리스트값 데이터 합치기 _np.column_stack() (4) | 2023.03.11 |
---|---|
[Python] 파이썬의 자료형 변환 이해하기 (0) | 2023.03.02 |
[Python] 설치된 Python 버전 확인하는 2가지 방법 (4) | 2023.03.01 |
[Python] Matplotlib stylesheet 종류 및 적용 (0) | 2023.02.11 |
[오류] No module named 'graphviz' in Jupyter Notebook (0) | 2023.02.07 |