REPL or Interactive Mode
Python을 가장 쉽게 (또는 naive하게) 사용하는 방법은 Python Shell을 통해 사용하는 것임.
이 경우, Python Interpreter는 사용자가 Python Shell의 prompt에 입력한 statement 단위로 수행을 시키고 해당 결과를 즉시 사용자에게 출력하고 나서 다시 prompt를 통해 사용자의 입력을 대기한다.
이같은 방식을 REPL
(Read-Eval-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(or python virtual machine)와 사용자 사이에 위치하면서
- 사용자가 입력한 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 |