Using the Python Interpreter
Invoking the Interpreter
파이썬 인터프리터는 보통 /usr/local/bin/python3.12
에 설치가 됩니다. 유닉스 쉘에서 /usr/local/bin
폴더 아래에 설치된 파일들은 아래와 같이 간단한 명령어로 실행할 수 있게 됩니다.
python3.12
파이썬 인터프리터가 설치되는 경로는 설치할때 옵션으로 바꿀수가 있어요. 혹시라도 파이썬이 다른곳에 설치되어있을수도 있으니 그때는 파이썬 Guru나 관리자에게 설치경로를 물어보세요. 사람들이 주로 사용하는 또 다른 경로에는 /usr/local/python
도 있으니 참고하세요.
윈도우의 경우에는 Microsoft Store에서 파이썬을 설치하는데 설치후 바로 python3.12
명령어를 바로 사용할 수 있습니다. 만약에 py.exe launcher를 추가로 설치하셨다면 py
명령어로도 파이썬을 실행할 수 있습니다. 또 다른 방법으로 파이썬을 실행하고 싶으시면 Excursus: Setting environment variables를 참고해주세요.
파이썬 인터프리터를 종료하고 싶으시면 파일을 끝으로 가는 단축키 (유닉스에서는 Ctrl+D, 윈도우에서는 Ctrl+Z)를 눌러주세요. 이 액션은 파이썬을 아무 문제없이 종료한다는 의미의 zero-exit-status로 안전하게 종료하게 해줍니다. 만약 단축키가 잘 안먹으면 실행창에 quit()
라고 치고 엔터를 누르면 마찬가지로 종료가 됩니다.
파이썬 인터프리터의 라인별 수정기능은요, 대화형 코딩과 기존 코딩을 불러와 변경하여 실행할수 있는 기능, 그리고 GNU Readline에 입각한 코드완성기능까지 지원합니다. 커맨드라인 명령어 수정을 지원 하는지를 확인하기 위한 가장 빠른 방법은 파이썬 프롬프트를 실행하고 바로 Ctrl+P를 입력하는 것입니다. 만약에 삐하는 소리가 들리면 커맨드라인 수정이 가능하다는 뜻입니다. 각 단축키들의 설명을 위해 Interactive Input Editing and History Substitution를 확인해 주세요. 만약 Ctrl+P를 쳤는데 아무 소리도 나지 않거나 ^P
가 출력이 된다면 커맨드라인 명령어 수정은 지원하지 않는 개발환경입니다. 그런 경우에는 불편하시더라도 Backspace키를 눌러 수정할 명령어를 삭제하고 다시 입력하여 수정을 진행해주세요.
파이썬 인터프리터는 어떻게 보면 유닉스 쉘같기도 해요. 마우스나 키보드같은 일반적인 입력장치가 TTY장비와 연결이 되면 입력받은 명령어를 읽고 실행하는 것을 주거니 받거니 할수 있습니다. 만약 인터프리터의 입력이 입력장치가 아닌 파일이라면 해당 스크립트를 실행하라는 의미로 받아들이고 읽고 실행하여 결과를 화면에 출력합니다.
두번째로 파이썬 인터프리터를 실행하는 방법은 python -c command [arg] ...
명령어를 이용하는 방법입니다. 이것은 쉘에서 -c
옵션을 사용한것과 비슷하게 -c
이후에 오는 명령어를 실행합니다. 파이썬 코드에 공백이 들어가는 것이 일반적이기 때문에 보통 명령어부분을 통째로 따옴표로 감싸는 것을 권장해 드립니다.
파이썬 모듈들도 스크립트 못지않게 유용하게 사용이 됩니다. python -m module [arg] ...
를 통해 실행할수 있는데요, 명령어에 -m
다음에 특정 모듈의 이름을 명명함으로써 소스파일내에 특정 모듈만 실행하도록 하는것입니다.
스크립트 파일을 이용해서 파이썬을 돌릴때는요, 일단 스크립트를 돌리고 나중에 대화형모드로 들어가도록 설정할수 있습니다. 이 설정은 명령어를 입력할때 스크립트 파일명 전에 -i
를 넘겨주면 됩니다.
파이썬 호출 명령어의 전체 옵션들은 Command line and environment에서 확인해주시기 바랍니다.
Argument Passing
스크립트와 추가적인 옵션들은 sys
모듈 안에 있는 argv
변수 뒤에 문자열 목록으로 나열함하여 전달합니다. 이 목록은 import sys
를 실행하여 접근이 가능합니다. 목록의 길이는 적어도 하나의 항목을 가져야하며, 만약 스크립트도 없고 전달변수도 없는 경우에는 sys.argv[0]
가 빈 문자열로 출력이됩니다. 만약 스크립트 이름이 -
이면 (기본 인풋을 의미합니다), sys.argv[0]
는 -
으로 설정이 됩니다. 만약 -c
옵션이 사용되면, sys.argv[0]
는 -c
로 설정됩니다. 만약 -m
옵션이 사용되었다면, sys.argv[0]
는 지정한 모듈의 이름으로 설정됩니다. -c
나 -m
옵션의 뒤에 따라오는 명령어들은 파이썬 인터프리터에 의해 처리되지 않습니다. sys.argv
에 저장되어 다음 명령이나 처리할 모듈을 기다립니다.
Interactive Mode
명령어가 TTY로 부터 읽혀질때, 인터프리터는 interactive(대화형) 모드로 들어가라고 명령을 받게 됩니다. 이 모드에서는 프롬프트에서 Primary Prompt로서 다음 명령을 기다립니다. 이때 프롬프트는 보통 3개의 꺽쇠 (>>>)로 표현됩니다. 만약 명령이 다음 줄로 이어진다면 이때는 Secondary Prompt로써 명령어를 기다리게 되는데 이때 프롬프트는 3개의 점(…)으로 구성됩니다. 인터프리터를 실행하면 제일 처음 환영 메세지와 버젼을 화면에 출력하여 정보를 보여주고, 이어서 저작권정보 등도 보여준 후에 첫번째 프롬프트를 띄워 다음명령어를 기다립니다.
$ python3.12
Python 3.12 (default, April 4 2022, 09:25:04)
[GCC 10.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
만약 여러분이 인터프리터 모드에서 여러개의 라인에 하나의 statement을 표현하고 싶다면, 연속라인 모드로 표현하게 됩니다. 예들 들자면 아래코드의 if statement같이 말입니다.
>>> the_world_is_flat = True
>>> if the_world_is_flat:
... print("Be careful not to fall off!")
...
Be careful not to fall off!
더 자세한 Interactive(대화형) 모드를 알고 싶으시면, Interactive Mode를 참고해 주세요.
The Interpreter and Its Environment
Source Code Encoding
기본적으로 파이썬의 소스코드들은 UTF-8로 캐릭터셋이 설정이 되었다는 가정하에 파일들을 처리합니다. 해당 엔코딩에서 제공하는 캐릭터들은 대부분의 언어에서 사용되는 문자열이고 구분자이며, 주석입니다. 비록 스탠다드 라이브러리에서는 오직 구분자등을 위해서 ASCII 캐릭터만 사용하지만 말이죠. 이런 다양한 문자들을 제대로 보여주기 위해서는, 코딩하는 개발자가 파일이 UTF-8인지 왜 그래야하는지 등을 정확하게 알고 있어야합니다. 또한 파일안의 모든 문자들을 지원하는 폰트를 반드시 사용해야합니다.
기본적으로 설정된 엔코딩 이외의 엔코딩을 정의하려면 파일의 첫번째 줄에 특별히 약속된 문구를 넣어줘야합니다.
# -*- coding: encoding -*-
위의 명령어에서 encoding부분은 반드시 실제 시스템들이 지원하는 코덱이어야합니다.
예를 들면, 해당 소스파일은 윈도우-1252 엔코딩이 사용될 것이라고 정의하고 싶다면 코드의 가장 첫번째 줄에 아래처럼 명시를 해주어야합니다.
# -*- coding: cp1252 -*-
첫번째 줄에 엔코딩이 들어가야한다는 규칙에는 단 하나의 예외가 존재합니다. 바로 소스코드가 UNIX “shebang” line일때는 첫번째 줄에 엔코딩을 넣지 않아도 됩니다. 그 경우에는 엔코딩은 아래와 같이 두번째 줄에 들어갑니다.
#!/usr/bin/env python3
# -*- coding: cp1252 -*-