✔ Python

[오류] TypeError: 'int' object is not callable

  • -
주제: TypeError : 'int' object is not callable
작성: 2023-03-02

타입에러, 'int' object is not callable


코드 예시

시험결과의 값을 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
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.