콘텐츠로 이동

04. 파이썬 인터프리터 (번역가)

"파이썬 파일(.py)은 그 자체로는 아무 일도 못하는 텍스트 쪼가리입니다. 이것을 읽어주는 번역가가 필요합니다."

1. 인터프리터 (Interpreter)

컴퓨터(CPU)는 0과 1(기계어)밖에 모르는 단순한 기계입니다. print("Hello") 같은 영어 문장은 절대 이해 못합니다. 그래서 우리말(파이썬 코드)을 기계어(CPU가 아는 말)로 번역해주는 번역가가 필요합니다. 그게 바로 우리가 설치한 Python입니다.

  • 우리가 하는 일: 요리 레시피(.py 파일)를 작성한다.
  • 파이썬이 하는 일: 레시피를 한 줄씩 읽으면서 즉석에서 요리(실행)한다.

2. 두 가지 실행 방식

1) 대화형 모드 (REPL: Read-Eval-Print Loop)

터미널에 그냥 python만 치면 나오는 화면입니다. "읽고(Read), 해석하고(Eval), 출력하고(Print), 반복한다(Loop)"라는 뜻입니다.

>>> print("Hello")
Hello
>>> 1 + 1
2
* 특징: 한 마디 하면 바로 대답해줍니다. * 용도: 간단한 문법 테스트, 계산기 대용.

2) 스크립트 모드 (파일 실행)

우리가 주로 하게 될 방식입니다. 긴 코드를 파일에 저장해두고 한 번에 실행시킵니다.

python main.py
* 의미: "파이썬 번역가님(python), 이 파일(main.py) 좀 처음부터 끝까지 읽고 실행해주세요."

3. 에러의 주체 구분하기

초보자가 가장 많이 헷갈리는 것이 "누가 낸 에러인가?" 입니다.

🔴 쉘(Shell) 에러

파이썬이 켜지기도 전에 터미널에서 난 에러입니다.

zsh: command not found: pyton
* 원인: pyton이라는 파일 못 찾겠다. (오타) * 해결: 파이썬을 깐다. 오타를 고친다.

🔴 파이썬(Python) 에러

파이썬 번역가가 코드를 읽다가 난 에러입니다. (Traceback이 뜸)

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    prnt("Hello")
NameError: name 'prnt' is not defined
* 원인: 문법이 틀렸거나, 없는 변수를 썼거나.. * 해결: 코드를 고친다.

결론

화면에 이상한 글씨가 떴을 때 Traceback이라는 글자가 보이면 "아, 내 코드가 틀렸구나" 생각하고, 그게 안 보이면 "아, 명령어를 잘못 쳤거나 환경 설정 문제구나" 라고 생각하면 됩니다.