Python 표준 REPL 코드와 아이디어를 빠르게 시험해 보세요

2023. 12. 12. 22:41python/basic

Python 표준 REPL 알아보기

  • Python 표준 REPL 또는 대화형 셸 실행
  • 대화형 세션에서 Python 코드 작성 및 실행
  • 빠른 수정, 수정 및 REPL 세션에서 코드재사용
  • 대화형 세션 방식으로 코드를 도움 받고 점검하세요
  • 조정 표준 ​​REPL의 일부 기능
  • 표준 REPL의 누락된 기능 식별

Python 인터프리터는 대화형 REPL(Read-Eval-Print Loop) 또는 코드를 읽고 평가하는 셸을 허용합니다. , 그런 다음 루프를 통해 결과를 콘솔에 인쇄합니다.

Python 인터프리터는 두 가지 모드로 Python 코드를 실행할 수 있습니다.

  • 스크립트 또는 프로그램
  • 대화형 또는 REPL

Python의 대화형 셸 또는 REPL이란 무엇입니까?

  1. 표현식 및 명령문 읽기
  2. 결과를 생성하거나 부작용을 발생시키는 Python 코드 평가
  3. 코드 결과를 확인하고 즉각적인 피드백을 받을 수 있도록 모든 출력을 인쇄
  4. 반복 상호작용을 계속하려면 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 - 가져온 모듈 및 패키지 이름

출처 : https://realpython.com/python-repl/