Python

[Python error] name 'time' is not defined

코딩도어 2021. 12. 13. 17:30

오늘의 에러는 name 'time' is not defined입니다.

직역하면 "이름'time'이 정의되어 있진 않습니다"입니다. 여기서 time은 time이라는 모듈입니다. 모듈이 존재하지 않는다고 얘기한 건데 사실 어떠한 지정되지 않는 변수나 함수를 불러올 때 생기는 에러입니다.

예시를 통해서 볼까요?

print(time.localtime())

이렇게 코드를 적고 실행하면

이라는 에러가 생기게 되는데 앞에서 말씀드렸다시피 time이라는 모듈이 없기 때문입니다. 그럼 time 모듈을 임포트 해준다면 해결되는 에러라는 것입니다. 그럼 해보겠습니다.

import time
print(time.localtime())
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=13, tm_hour=17, 
tm_min=7, tm_sec=20, tm_wday=0, tm_yday=347, tm_isdst=0)

잘 출력되는 것을 볼 수 있죠? 이렇게 불러올 수 없는 변수나 함수를 컴퓨터는 읽지 못합니다. 그렇다면 다른 경우는 어떤 경우가 있을까요?

 간단한 코드로 보겠습니다. 여러분이 직접 해보시면 좋겠습니다.

a = 1
b = 2

a와 b의 변수를 선언하였는데요. 여기서 c라는 변수를 출력하면 어떻게 될까요?

print(c)

 위의 예와 동일한 에러가 발생했죠? 이렇듯 개발자가 선언한 변수이지만 존재하지 않으면 name 'time' is not defined 에러가 발생합니다. 

그렇다면 이런 경우는 어떨까요?

import numpy as np
a = mp.array([1,20,3])

 오류가 나죠? 파이썬에서는 어떤 모듈 명 뒤에 as를 붙여 약어로 사용할 수 있습니다.

 위의 코드에서 numpy와 np는 같은 뜻입니다. 마음대로 설정할 수 있으나 통상적으로 사용되는 약어가 있으니 추후 정리해보도록 하겠습니다.

import numpy as np		## numpy 다음 as np - "numpy를 np로 부르겠다."는 뜻

 수정을 해보면,

import numpy as np
a = np.array([1,20,3])
[ 1 20  3]

이렇게 잘 되는 것을 볼 수 있습니다. 비슷한 에러로는 ModuleNotFoundError: No module named 'numpy'가 있는데 나중에 포스팅하겠습니다.

 

 오늘은  name 'time' is not defined 에러를 알아보았는데요. 복잡한 코드 속에서 어느 정도 에러의 위치를 알려주기 때문에 쉽게 잡히는 경우가 많더라고요. 하지만 에러가 나는 것은 곧 시간 낭비라는 리스크가 있기 때문에 반복 숙달로 이런 에러를 없애는 것이 중요하다고 생각합니다.

 그리고 요즘 뜸하게 올렸는데 제가 원래 직업이 기구 설계인데 일이 많이 바빠졌습니다. 어서 안정되면 1일 1포 스팅 하는 codingdoor 되겠습니다.

 긴 글 읽어주셔서 감사하고 미약하지만 도움이 되었으면 하는 바람입니다. 감사합니다.