2. 파이썬 인터프리터 사용하기¶
2.1. 인터프리터 실행하기¶
파이썬 인터프리터는 보통 /usr/local/bin/python3.9
에 설치됩니다; 유닉스 셸의 검색 경로에 /usr/local/bin
를 넣으면 명령:
python3.9
을 셸에 입력해서 실행할 수 있습니다. 1 인터프리터가 위치하는 디렉터리의 선택은 설치 옵션이기 때문에, 다른 장소도 가능합니다; 주변의 파이썬 전문가나 시스템 관리자에게 확인할 필요가 있습니다. (예를 들어, /usr/local/python
도 널리 사용되는 위치입니다.)
마이크로소프트 스토어에서 설치한 파이썬이 있는 윈도우 시스템에서는, python3.9
명령을 사용할 수 있습니다. py.exe 구동기를 설치했으면, py
명령을 사용할 수 있습니다. 파이썬을 구동하는 다른 방법은 보충 설명: 환경 변수 설정하기를 참조하십시오.
기본 프롬프트에서 EOF(end-of-file) 문자(유닉스에서는 Control-D, 윈도우에서는 Control-Z)를 입력하면 인터프리터가 종료하고, 종료 상태 코드는 0 이 됩니다. 이 방법이 통하지 않는다면 quit()
명령을 입력해서 인터프리터를 종료시킬 수 있습니다.
인터프리터는 GNU Readline 라이브러리를 지원하는 시스템에서 줄 편집 기능으로 대화형 편집, 히스토리 치환, 코드 완성 등을 제공합니다. 아마도 명령행 편집이 제공되는지 확인하는 가장 빠른 방법은 첫 프롬프트에서 Control-P 를 입력하는 것입니다. 삑 하는 소리가 난다면 명령행 편집이 지원되고 있습니다; 입력 키에 대한 소개는 부록 대화형 입력 편집 및 히스토리 치환 을 보세요. 아무런 반응도 없거나 ^P
가 출력된다면 명령행 편집이 제공되지 않는 것입니다; 현재 줄에서 문자를 지우기 위해 백스페이스를 사용할 수 있는 것이 전부입니다.
인터프리터는 어느 정도 유닉스 셸처럼 동작합니다: tty 장치에 표준 입력이 연결된 상태로 실행되면, 대화형으로 명령을 읽고 실행합니다; 파일명을 인자로 주거나 파일을 표준입력으로 연결한 상태로 실행되면 스크립트를 읽고 실행합니다.
인터프리터를 실행하는 두 번째 방법은 python -c command [arg] ...
인데, command 에 있는 문장들을 실행합니다. 셸의 -c
옵션에 해당합니다. 파이썬 문장은 종종 셸에서 특별한 의미가 있는 공백이나 다른 문자들을 포함하기 때문에, command 전체를 작은따옴표로 감싸주는 것이 좋습니다.
몇몇 파이썬 모듈들은 스크립트로도 쓸모가 있습니다. python -m module [arg] ...
로 실행할 수 있는데, 마치 module 모듈 소스 파일의 경로명을 명령행에 입력한 것처럼 실행되게 됩니다.
스크립트 파일이 사용될 때, 때로 스크립트를 실행한 후에 대화형 모드로 들어가는 것이 편리할 때가 있습니다. 스크립트 앞에 -i
를 전달하면 됩니다.
모든 명령행 옵션은 명령 줄과 환경 에서 찾을 수 있습니다.
2.1.1. 인자 전달¶
스크립트 이름과 추가의 인자들이 인터프리터로 전달될 때, 문자열의 목록으로 변환된 후 sys
모듈의 argv
변수에 저장됩니다. import sys
를 사용해서 이 목록에 접근할 수 있습니다. 목록의 길이는 최소한 1이고, 스크립트도 추가의 인자도 없는 경우로, sys.argv[0]
은 빈 문자열입니다. 스크립트 이름을 '-'
(표준 입력을 뜻한다) 로 주면 sys.argv[0]
는 '-'
가 됩니다. -c
command 가 사용되면 sys.argv[0]
는 '-c'
로 설정됩니다. -m
module 이 사용되면 sys.argv[0]
는 모듈의 절대 경로명이 됩니다. -c
command 나 -m
module 뒤에 오는 옵션들은 파이썬 인터프리터가 소모하지 않고 명령이나 모듈이 처리하도록 sys.argv
로 전달됩니다.
2.1.2. 대화형 모드¶
명령을 tty 에서 읽을 때, 인터프리터가 대화형 모드 로 동작한다고 말합니다. 이 모드에서는 기본 프롬프트 를 표시해서 다음 명령을 요청하는데, 보통 세 개의 ...보다 크다 기호입니다 (>>>
); 한 줄로 끝나지 않고 이어지는 줄의 입력을 요청할 때는 보조 프롬프트가 사용되는데, 기본적으로 세 개의 점입니다 (...
). 인터프리터는 첫 번째 프롬프트를 인쇄하기 전에 버전 번호와 저작권 공지를 포함하는 환영 메시지를 출력합니다.
$ python3.9
Python 3.9 (default, June 4 2019, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
이어지는 줄은 여러 줄로 구성된 구조물을 입력할 때 필요합니다. 예를 들자면, 이런 식의 if
문이 가능합니다:
>>> the_world_is_flat = True
>>> if the_world_is_flat:
... print("Be careful not to fall off!")
...
Be careful not to fall off!
대화형 모드에 대해 더 알고 싶다면, 대화형 모드 를 보세요.
2.2. 인터프리터와 환경¶
2.2.1. 소스 코드 인코딩¶
기본적으로, 파이썬 소스 파일들은 UTF-8으로 인코드 된 것으로 취급됩니다. 이 인코딩에서는 대부분 언어에서 사용되는 문자들을 문자열 상수, 식별자, 주석 등에서 함께 사용할 수 있습니다. (하지만 표준 라이브러리는 오직 ASCII 문자만 식별자로 사용하고 있는데, 범용 코드에서는 이 관례를 따르는 것이 좋습니다.) 이 문자들을 모두 올바로 표시하기 위해서는 편집기가 파일이 UTF-8임을 인식해야 하고, 이 파일에 포함된 모든 문자를 지원할 수 있는 글꼴을 사용해야 합니다.
인코딩을 기본값 외의 것으로 선언하려면, 파일의 첫 줄에 특별한 형태의 주석 문을 추가해야 합니다. 문법은 이렇습니다:
# -*- coding: encoding -*-
encoding 은 파이썬이 지원하는 코덱 (codecs
) 중 하나여야 합니다.
예를 들어, Windows-1252 인코딩을 사용하도록 선언하려면, 소스 코드 파일의 첫 줄은 이렇게 되어야 합니다:
# -*- coding: cp1252 -*-
첫 줄 규칙의 한가지 예외는 소스 코드가 유닉스 "셔뱅 (shebang)" 줄 로 시작하는 경우입니다. 이 경우에, 인코딩 선언은 두 번째 줄에 들어갑니다. 예를 들어:
#!/usr/bin/env python3
# -*- coding: cp1252 -*-
각주
- 1
유닉스에서, 파이썬 3.x 인터프리터는 보통
python
이라는 이름의 실행 파일로 설치되지 않는데, 동시에 설치되는 파이썬 2.x 실행 파일과 충돌하지 않도록 하기 위해섭니다.