NOTE print(a)와 print('a')의 차이
2장에서 배운 print('a')와 3장에서 배우는 print(a)는 매우 큰 차이가 있습니다. 바로 작은따옴표가 있고 없고의 차이죠. 2장에서 작은따옴표가 양옆에 붙으면 문자로 인식한다고 했으므로 print('a')는 문자 a를 그대로 출력합니다. 작은따옴표가 붙지 않은 print(a)는 어떻게 될까요? 파이썬에서 작은따옴표나 큰따옴표가 붙지 않은 문자는 자동으로 변수로 인식합니다. 따라서 다음과 같이 변수 a에 저장된 10이 출력됩니다.
a = 10
print('a')
print(a)
실행결과
a
10
이 부분이 헷갈리면 오류가 발생합니다. 2장에 나왔던 코드를 다시 봅시다.
print(가나다)
실행결과
NameError: name '가나다' is not defined
이 부분에서 발생한 오류를 이제 이해할 수 있을 거예요. 오류 내용을 해석하면 “이름 ‘가나다’는 정의되지 않았다”입니다. 보다시피 문자인 가나다 양옆에 작은따옴표가 없어서 컴퓨터가 이를 문자가 아닌 변수로 인식했기 때문입니다. 즉, 이름이 '가나다'인 변수가 만들어지지 않았다는 것이죠. 컴퓨터는 '가나다'를 변수라고 인식했는데 해당 이름의 변수가 존재하지 않으니 컴퓨터가 명령을 이해하지 못해 오류가 발생한 겁니다.
앞으로 이런 NameError를 만나면 당황하지 말고 변수명과 변수에 들어 있는 값, 문자 양옆에 작은따옴표를 빠뜨리지 않았는지 확인하세요.