REPL or Interactive Mode
Python을 가장 쉽게 (또는 naive하게) 사용하는 방법은 Python Shell을 통해 사용하는 것임.
이 경우, Python Interpreter는 사용자가 Python Shell의 prompt에 입력한 statement 단위로 수행을 시키고 해당 결과를 즉시 사용자에게 출력하고 나서 다시 prompt를 통해 사용자의 입력을 대기한다.
이같은 방식을 REPL
(Run-Evaluation-Print, Loop)이라는 약어로 부르거나 interactive mode
라고 부른다.
Python code를 statement 단위로 입력받아 수행해서 결과를 출력해주는 프로그램을 Python Interactive Shell이라고 부름 : 한번에 한 statement가 수행되는 방식으로 동작.
참고 : 다음 URL에서 statement와 expression의 비교를 통해 개념을 확실히 할 것
https://dsaint31.tistory.com/entry/Python-Expression-vs-Statement
Windows 의 command prompt 나 Linux shell prompt처럼 사용되기 때문에 Interactive Prompt라고도 불린다.
Python Shell을 실행
Python Shell을 실행하려면, terminal에서 다음의 커맨드로 Python shell을 수행한다.
$ python
$
는 terminal에서의 prompt임.python
을 입력하고 엔터를 누르면 실행됨.
다음이 실행 결과임.
>>>
(three arrows)가 바로 Python shell에서의 (primary) prompt로서- 사용자의
statement
입력을 대기하고 있음을 의미한다. - 위와 사진처럼 prompt가 보이면, Python Interactive Session이 시작되었다고 할 수 있다. 해당 shell을 종료하기 까지 객체 및 입력한 statement 등을 Interactive session이 저장 관리한다. 해당 session은 해당 Python Interactive Shell이 종료될 때 끝남.
- 이를 종료하기 위해서는 exit()를 입력하거나 Windows에선 CTRL+z 이후 Enter, Linux에선 CTRL+d를 눌러준다 (WSL인 경우는 Linux에 해당함)
Linux 사용자의 경우, python
이 Python 2.x인 경우도 있다. 이 경우 대부분 python3
가 Python 3.x를 수행하는 명령어로 되어있다. 가급적 linux system의 기본 python 보다는 conda
등을 사용하여 python 관련 환경을 구축하여 사용하길 권한다.
참고로 Windows의 경우,
Python을 설치할 때 IDLE (Integrated Development and Learning Environment)가 같이 설치된다.
(참고로 IDLE는 linux나 MacOS에선 따로 설치를 해야한다.)
IDLE는 GUI Tkinter 툴킷을 사용한 일종의 IDE인데...
Learning이 추가로 들어가 있는 이름에서 알 수 있듯이
정말 초보자들이 학습에서나 사용할 수준으로
실제 개발에 쓰기에는 많이 아쉽다 (하라고 하면 하겠지만...).
linux 사용자라면 vim을 사용하여 개발하는 것보다 못한데 라는 느끼기 쉽다.
개인적으로는 vscode + conda 조합을 권한다.
shell은 사용자와 OS (정확히는 kernel) 사이에 위치하면서 사용자가 OS를 사용하도록 돕는 프로그램을 가르킨다.
python shell은 python interpreter와 사용자 사이에 위치하면서 사용자가 입력한 statement를 전달하고, interpreter가 수행한 결과를 사용자에게 출력해주는 역할을 하기 때문에 마치 OS와 사용자 사이의 shell과 유사하다.
https://dsaint31.me/mkdocs_site/OS/console_terminal_shell_kernel/#shell
python shell은 일종의 계산기나 간단한 디버깅 또는 test 용도로 쓸 때 사용하는 수준으로,
30여 line이 넘어가는 code를 사용해야한다면, 대부분.py
파일로 저장하여 수행하는 게 훨씬 편하다..py
파일을 script 파일 또는 source code file이라고 부른다.
실제 데이터 처리나 개발 등에선, 기본으로 제공되는 python shell
보다는 IPython Shell
과 같이 보다 향상된 기능을 가지고 있는 shell (block 단위 실행)등이 사용된다. ML이나 데이터 사이언스 등에서는 IPython shell
의 웹버전이라고 할 수 있는 Jupyter Notebook
을 사용하는 경우가 많다. 또는 vscode등과 같은 IDE Tool을 이용한다.
간단한 문법을 공부하는 경우등은 python shell로도 충분하다.
하지만, 문법만 배우는 것으론 부족하기 때문에
vscode나 pycharm등의 IDE를 꼭 설치하고 사용법을 같이 익혀나가길 권한다.
주의사항
- Python shell (or Interactive Prompt)에서는 Python command만 수행가능함. (OS에서 지원하는 command 도 수행시키려면, IPython shell을 사용하거나 os.system을 사용한다.)
- multiline statements를 사용하는 경우를 제외하곤 공백문자로 statement를 시작시켜선 안됨.
- compound statements (for 문, if 문 등)의 종료는 blank line으로 처리함.
- Python shell에선 expression을 입력시 evaluation을 통한 값이 그대로 출력(REPL)되기 때문에 굳이 print문을 사용할 필요가 없음.
참고해볼만한 URLs
https://bpython-interpreter.org/
IPython 사용을 위한 Jupyter notebook (over colab) : https://dsaint31.me/mkdocs_site/CE/colab/hw_spec/#jupyter-notebook
'Programming' 카테고리의 다른 글
[Python] Function Call (함수호출) (0) | 2023.06.10 |
---|---|
[Python] Function Definition, Call and Arguments (0) | 2023.06.10 |
[Python] Python Script File 실행해보기 (0) | 2023.06.09 |
[Programming] Application Programming Interface (API) (0) | 2023.06.08 |
[Python] range and enumerate (0) | 2023.06.07 |