2023. 12. 12. 22:41ㆍpython/basic
Python 표준 REPL 알아보기
- Python 표준 REPL 또는 대화형 셸 실행
- 대화형 세션에서 Python 코드 작성 및 실행
- 빠른 수정, 수정 및 REPL 세션에서 코드재사용
- 대화형 세션 방식으로 코드를 도움 받고 점검하세요
- 조정 표준 REPL의 일부 기능
- 표준 REPL의 누락된 기능 식별
Python 인터프리터는 대화형 REPL(Read-Eval-Print Loop) 또는 코드를 읽고 평가하는 셸을 허용합니다. , 그런 다음 루프를 통해 결과를 콘솔에 인쇄합니다.
Python 인터프리터는 두 가지 모드로 Python 코드를 실행할 수 있습니다.
- 스크립트 또는 프로그램
- 대화형 또는 REPL
Python의 대화형 셸 또는 REPL이란 무엇입니까?
- 표현식 및 명령문 읽기
- 결과를 생성하거나 부작용을 발생시키는 Python 코드 평가
- 코드 결과를 확인하고 즉각적인 피드백을 받을 수 있도록 모든 출력을 인쇄
- 반복 상호작용을 계속하려면 1단계로 돌아가세요
Python REPL을 사용하는 이유는 무엇입니까?
- 탐색 및 Python 구문 학습
- 아이디어, 개념 및 구현 시도하고 증명
- 코드 스니펫 빠른 평가
- 언어 행동 자세히 살펴보기
- 나중에 스크립트 모드에서 사용할 수 있도록 코드를 편집 및 리팩터링
- 코드 수행 및 자체 검사
- 언어 사용 방법에 대한 대화형 도움말
- 디버깅 기본 코드 실행
- 표준 라이브러리 및 타사 모듈, 라이브러리API
- 클래스, 함수 구현 및 기타 개체를 검사
REPL 대화형 세션 시작 및 종료
python 명령 실행
$ python
이 명령은 Python을 대화형 모드로 전환합니다. 인터프리터가 실행되고 다음과 같은 출력을 얻게 됩니다.
Python 3.11.0 (main, Nov 6 2022, 13:27:29) … on darwin Type “help”, “copyright”, “credits” or “license” for more information. >>>
명령줄 옵션을 python 명령에 전달
python 명령은 다양한 명령줄 옵션을 사용할 수 있습니다. 그 중 몇 가지는 REPL 세션에서 작업할 때 유용할 수 있습니다. 가장 관련성이 높은 옵션 중 하나는 -i 플래그입니다. 이 옵션을 사용하면 -c 옵션을 사용하여 스크립트를 실행하거나 코드 조각을 실행한 후 인터프리터가 대화형 모드로 전환됩니다.
참고: -c 명령줄 옵션을 사용하면 명령줄에 문자열로 제공하는 Python 문이나 표현식을 빠르게 실행할 수 있습니다. . 이 옵션이 실제로 어떻게 작동하는지 보려면 python -c “print(‘Hello, World!’)” 명령을 사용해 보세요.
-i 옵션을 사용하면 스크립트에서 현재 전역 변수를 확인하거나 프로그램에서 예외가 발생할 때 스택 추적을 검사할 수 있습니다.
# sample.py
def read_data():
# Read data from a file or database...
return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sample = read_data()
def mean(data):
return sum(data) / len(data)
average = mean(sample)
globals()
{
'__name__': '__main__',
}
mean([2, 3, 3, 2])
2.5
mean([])
ZeroDivisionError: division by zero
이 예에서는 먼저 내장된 globals() 함수를 호출하여 스크립트에 정의된 전역 이름을 검사합니다. 이 함수는 이름을 해당 개체에 매핑하는 사전을 반환합니다. 두 번째 예에서는 새로운 데이터 샘플을 사용하여 mean()를 호출합니다. 이 경우 빈 목록으로 을 호출하면 텅 빈 len()가 반환되기 때문에 함수는 ZeroDivisionError로 실패합니다.
# Run python with the -b option
b = b"Hello"
s = "Hello"
b == s
False
두 번째 예의 -b 옵션을 사용하면 인터프리터가 문자열 또는 int형 값이 있는 bytes 와 비교하는 작업을 할 때 경고를 표시합니다. 이 옵션을 사용하지 않으면 경고가 표시되지 않습니다:int 값의 데이터 유형이 다르기 때문에 비교 결과 False가 반환됩니다.
현재 Python REPL 세션 종료
대화형 세션을 종료하는 방법에는 몇 가지가 있습니다. 다음 Python 함수 중 하나를 사용할 수 있습니다.
- quit()
- exit()
REPL 세션을 종료하는 또 다른 옵션은 현재 운영 체제에 따라 다음 키보드 단축키 중 하나를 사용하는 것입니다.
- Ctrl+D : Linux 또는 macOS와 같은 Unix 시스템의 경우
- Ctrl+Z 그리고 Enter : Windows 시스템
이러한 키 조합은 해당 OS의 파일 끝 문자(EOF)를 나타냅니다. 인터프리터가 __main__라는 특수 파일에서 실행되기 때문에 현재 대화형 세션을 종료할 수 있습니다. name 속성을 검사하여 확인할 수 있습니다.
__name__
'__main__'
대화형 세션의 모든 Python 코드는 main 파일에 포함되며 EOF 문자를 읽을 때까지 실행됩니다. 즉, 인터프리터가 이 문자를 발견하면 즉시 현재 REPL 세션을 종료합니다.
REPL 세션에서 코드 실행
참고: REPL의 보조 프롬프트를 종료하려면 Enter를 두 번 눌러야 합니다. 이 작업을 수행하면 기본 메시지로 돌아갑니다.`
들여쓰기된 코드 블록을 입력할 때 표준 REPL은 자동 들여쓰기를 지원하지 않는다는 점을 명심하세요.
if number < 0:
print("negative")
IndentationError: expected an indented block after 'if' statement on line 1 (532289867.py, line 2)
_ 특수 변수 사용
42 < 7
False
_
False
이 예에서는 표현식을 평가합니다. 표현식에는 항상 _ 변수에 자동으로 할당되는 반환 값이 있습니다.
pow(4, 2)
16
_
16
print("Hello, World!")
Hello, World!
_
16
내장된 pow() 함수는 주어진 지수에 대한 숫자의 거듭제곱을 계산하여 결과를 반환합니다. 함수의 결과가 None와 다르기 때문에 _ 변수가 자동으로 재할당됩니다. 반대로 print()와 같이 None를 반환하는 함수를 호출하면 변수는 변경되지 않습니다
코드 완성
표준 REPL은 변수, 개체 및 모듈 이름에 대한 기본 완성 기능을 제공합니다. 이 기능은 대화형 세션을 시작하면 자동으로 활성화됩니다. 사용 가능한 코드 완성을 호출하려면 주어진 이름의 시작 문자를 입력하고 Tab 키를 누르십시오. 이 작업을 수행하면 완성 검색이 실행됩니다.
검색 결과 일치하는 항목이 발견되면 이름이 자동으로 완성됩니다. 검색 결과 일치하는 이름이 두 개 이상 발견되면 일치하는 이름의 전체 목록을 얻으려면 Tab을 다시 눌러야 합니다. Tab를 두 번 누른 후에도 아무것도 나타나지 않으면 검색 결과가 없는 것입니다.
코드 완성 시스템은 검색을 실행할 때 다음 개체를 확인합니다. - Python 키워드 - 내장 함수, 클래스 및 이름객체 - 현재 정의된 이름(예: 변수, 함수) 및 classes - 가져온 모듈 및 패키지 이름
'python > basic' 카테고리의 다른 글
Python 개발자를 위한 HTML 및 CSS (0) | 2023.12.14 |
---|---|
Python에서 문자열을 바꾸는 방법 (0) | 2023.12.13 |
Python과 PySimpleGUI를 사용하여 행맨 게임 구축 (1) | 2023.12.11 |
Python의 효율적인 문자열 연결 (0) | 2023.12.10 |
Python의 연산자 및 표현식 (1) | 2023.12.09 |