매우 자주 명령줄에서 실행할 때 Python 스크립트에 인수를 전달해야 합니다. 그러나 필요한 매개변수가 동일한 수나 유형 또는 순서로 제공되지 않으면 스크립트에서 예외가 발생합니다. 여기에서 명령줄 인수를 적절하게 구문 분석해야 합니다. argparse 모듈은 매우 사용하기 쉬운 명령줄 인터페이스를 작성하기 위한 도구를 제공합니다. sys.argv 목록에 수집된 인수를 구문 분석하고 도움말을 자동으로 생성하며 잘못된 옵션이 제공될 때 오류 메시지를 표시하는 방법을 처리합니다. 명령줄 인터페이스를 설계하는 첫 번째 단계는 파서
부동 소수점 숫자는 기본 2 이진 분수로 메모리에 표시됩니다. 결과적으로 부동 소수점 산술 연산은 때때로 이상할 수 있습니다. 0.1과 0.2를 더하면 다음과 같은 성가신 결과를 얻을 수 있습니다. - 0.1 + 0.20.30000000000000004 사실 이것이 이진 부동 소수점 표현의 특성입니다. 이것은 모든 프로그래밍 언어에 널리 퍼져 있습니다. Python은 빠르고 정확하게 반올림된 부동 소수점 산술을 수행하기 위한 10진수 모듈을 제공합니다. decimal 모듈은 부동 소수점이 원하는 대로 정확하게 표현되도록 설계되
대부분의 프로그래밍 언어에서와 같이 Python은 루프 구조를 형성하기 위해 while 및 for 문을 제공합니다. for 문은 목록, 튜플 또는 문자열과 같은 반복 가능한 항목을 탐색하는 데 특히 유용합니다. 보다 효율적이고 빠른 반복 도구는 Python 표준 라이브러리의 itertools 모듈에 정의되어 있습니다. 이 반복자 빌딩 블록은 Haskell 및 SML과 같은 기능적 프로그래밍 언어에서 유사한 도구를 Python으로 구현한 것입니다. itertools 모듈의 함수는 세 가지 유형이 있습니다. 무한 반복자 유한 반복자
파이썬 표준 라이브러리의 마샬 모듈은 객체 직렬화 기능(피클 모듈과 유사)을 제공하지만 범용 데이터 지속성이나 소켓 등을 통한 파이썬 객체 전송에는 실제로 유용하지 않습니다. 이 모듈은 대부분 파이썬 자체에서 읽기/ 컴파일된 버전의 Python 모듈(.pyc 파일)에 대한 쓰기 작업. 마샬 모듈에서 사용하는 데이터 형식은 Python 버전 간에 호환되지 않습니다(하위 버전도 포함하지 않음). 이것이 한 버전의 컴파일된 Python 스크립트(.pyc 파일)가 다른 버전에서 실행되지 않는 이유입니다. 따라서 마샬 모듈은 파이썬의 내부
프로그래밍에서 연산자는 일반적으로 더하기, 빼기, 비교 등과 같은 특정 연산을 수행하도록 미리 정의된 기호(키)입니다. 산술, 비교, 비트 단위, 멤버십 등과 같은 범주. 파이썬 라이브러리의 연산자 모듈은 내장 연산자에 해당하는 함수로 구성되어 있습니다. 함수의 이름은 해당 연산자의 유형과 유사합니다. 예를 들어 연산자 모듈의 add() 함수는 + 연산자에 해당합니다. Python의 Object 클래스에는 연산자 기호에 해당하는 dunder(이름 앞뒤에 이중 밑줄) 메서드가 있습니다. 이러한 dunder 메서드는 연산자 오버로딩
객체 직렬화라는 용어는 객체의 상태를 바이트 스트림으로 변환하는 프로세스를 나타냅니다. 이 바이트 스트림이 생성되면 파일에 추가로 저장하거나 소켓 등을 통해 전송할 수 있습니다. 반면에 바이트 스트림에서 객체를 재구성하는 것을 역직렬화라고 합니다. 직렬화 및 역직렬화에 대한 Python의 용어는 각각 피클링 및 피클링 해제입니다. Python의 표준 라이브러리에서 사용할 수 있는 pickle 모듈은 직렬화(dump() 및 dumps()) 및 역직렬화(load() 및 load())를 위한 함수를 제공합니다. pickle 모듈은 매
pprint 모듈(lib/pprint.py)은 표준 Python 배포판과 함께 배포되는 Python 표준 라이브러리의 일부입니다. pprint라는 이름은 예쁜 프린터를 의미합니다. pprint 모듈의 기능은 Python 데이터 구조의 미학적으로 보기 좋은 모양을 가능하게 합니다. Python 인터프리터가 올바르게 구문 분석할 수 있는 모든 데이터 구조는 우아한 형식으로 지정됩니다. 서식이 지정된 표현식은 가능한 한 한 줄로 유지되지만 길이가 서식의 너비 매개변수를 초과하면 여러 줄로 나뉩니다. pprint 출력의 한 가지 고유한 기
많은 컴퓨터 응용 프로그램은 난수를 생성해야 합니다. 그러나 그들 중 누구도 진정한 난수를 생성하지 않습니다. Python은 다른 프로그래밍 기술과 마찬가지로 의사 난수 생성기를 사용합니다. Python의 무작위 생성은 53비트 정밀도 부동 소수점을 생성하는 Mersenne Twister 알고리즘을 기반으로 합니다. 이 기술은 빠르고 스레드로부터 안전하지만 암호화 목적으로는 적합하지 않습니다. Python의 표준 라이브러리에는 무작위 처리를 위한 다양한 기능을 정의하는 random 모듈이 포함되어 있습니다. random.seed(
Python의 표준 배포판에는 doctest 모듈이 포함되어 있습니다. 이 모듈의 기능을 사용하면 대화형 Python 세션처럼 보이는 텍스트 조각을 검색하고 이러한 세션을 실행하여 표시된 대로 정확하게 작동하는지 확인합니다. 이러한 예는 클래스, 모듈 또는 함수의 독스트링 표현식에서 추출됩니다. Doctest는 함께 제공되는 텍스트 파일의 텍스트 파일에서도 실행할 수 있습니다. Python에서 docstring은 클래스, 함수 또는 모듈의 첫 번째 표현식으로 나타나는 문자열 리터럴입니다. 스위트가 실행될 때 무시되지만 컴파일러에서
Python 표준 배포판의 atexit 모듈에는 register() 및 unregister()의 두 가지 함수가 있습니다. 두 함수 모두 기존 함수를 인수로 사용합니다. 등록된 기능은 인터프리터 세션이 정상적으로 종료되면 자동으로 실행됩니다. 하나 이상의 기능이 등록된 경우 등록의 역순으로 실행됩니다. 즉, f1(), f2(), f3() 함수가 차례로 등록되고 실행 순서는 f3(), f2(), f1()입니다. unregister() 함수는 자동으로 호출될 함수 목록에서 지정된 함수를 제거합니다. 다음 코드는 코드 종료 시 자동
Python 표준 라이브러리의 timeit 모듈에 있는 Timer 클래스 및 기타 편의 기능은 Python 코드의 작은 비트가 실행하는 데 걸리는 시간을 측정하는 메커니즘을 제공하도록 설계되었습니다. 모듈에는 명령줄 인터페이스가 있으며 프로그램 내에서도 함수를 호출할 수 있습니다. 실행 시간을 측정하는 가장 쉬운 방법은 다음과 같은 편의 기능을 사용하는 것입니다. timeit() 이 함수는 Timer 클래스의 객체를 반환합니다. 주로 두 개의 매개변수가 필요합니다. stmt - 실행 시간을 측정할 유효한 Python 문을
소프트웨어 개발 용어에서 디버깅이라는 용어는 프로그램에서 오류를 찾아 수정하는 프로세스에 널리 사용됩니다. Python의 표준 라이브러리에는 Python 프로그램 디버깅을 위한 유틸리티 세트인 pdb 모듈이 포함되어 있습니다. 디버깅 기능은 Pdb 클래스에 정의되어 있습니다. 모듈은 내부적으로 bdb 및 cmd 모듈을 사용합니다. pdb 모듈에는 매우 편리한 명령줄 인터페이스가 있습니다. –m 스위치를 사용하여 Python 스크립트 실행 시 가져옵니다. 파이썬 –m pdb 스크립트.py 디버거가 어떻게 작동하는지 자세히 알아보
Python 표준 라이브러리의 contextlib 모듈은 프로그램 내의 리소스를 적절하게 관리하는 객체를 가진 ContextManager 클래스를 정의합니다. Python에는 컨텍스트 관리자와 함께 작동하는 with 키워드가 있습니다. 파일 객체(내장된 open() 함수에 의해 반환됨)는 ContextManager API를 지원합니다. 따라서 파일 작업을 할 때 사용하는 키워드로 자주 찾습니다. 다음 코드 블록은 파일을 열고 그 안에 일부 데이터를 씁니다. 작업이 끝나면 파일이 닫히고 어떤 파일 설명자가 누출되어 파일 손상을 일으
모듈 개체는 다양한 속성을 특징으로 합니다. 속성 이름은 이중 밑줄 __로 접두어와 후단에 고정됩니다. 모듈의 가장 중요한 속성은 __name__입니다. Python이 최상위 실행 코드로 실행 중일 때, 즉 표준 입력, 스크립트 또는 대화형 프롬프트에서 읽을 때 __name__ 속성은 __main__으로 설정됩니다. . >>> __name__ '__main__' 스크립트 내에서도 __name__ 속성 값이 __main__으로 설정되어 있음을 알 수 있습니다. 다음 스크립트를 실행합니다. '
builtins 모듈은 Python 인터프리터가 시작될 때마다 최상위 실행 환경이나 대화형 세션으로 자동으로 로드됩니다. 모든 Python 객체의 기본 클래스인 Object 클래스는 이 모듈에서 정의됩니다. 숫자, 문자열, 목록 등과 같은 모든 내장 데이터 유형 클래스가 이 모듈에서 정의됩니다. BaseException 클래스와 모든 내장 예외도 여기에 정의되어 있습니다. 또한 모든 내장 함수는 내장 모듈에서도 정의됩니다. 이 모듈은 현재 세션에서 자동으로 가져오기 때문에 일반적으로 명시적으로 가져오지 않습니다. 실행 코드에 사용
Python 표준 라이브러리의 pwd 모듈은 Unix/Linux 운영 체제에서 사용자 계정의 암호 데이터베이스에 대한 액세스를 제공합니다. 이 비밀번호 데이터베이스의 항목은 튜플과 유사한 객체로 처리됩니다. 튜플의 구조는 CPython API의 다음과 같은 passwd 구조 pwd.h 파일에 따릅니다. 색인 속성 의미 0 pw_name 로그인 이름 1 pw_passwd 암호화된 비밀번호 선택 2 pw_uid 숫자 사용자 ID 3 pw_gid 숫자 그룹 ID 4 pw_gecos 사용자 이름 또는 설명 필드 5 pw_dir
파이썬 표준 라이브러리의 dis 모듈은 파이썬 바이트코드를 사람이 읽을 수 있는 형태로 분해하여 분석에 유용한 다양한 기능을 제공합니다. 이것은 최적화를 수행하는 데 도움이 됩니다. 바이트코드는 인터프리터의 버전별 구현 세부정보입니다. dis() 함수 dis() 함수는 모듈, 클래스, 메서드, 함수 또는 코드 개체와 같은 Python 코드 소스의 디스어셈블된 표현을 생성합니다. >>> def hello(): print ("hello world") >>> import dis >
Python은 스크립팅 언어이고 C는 프로그래밍 언어입니다. C/C++는 Python에 비해 상대적으로 빠릅니다. Python 스크립트를 실행할 때 인터프리터가 스크립트를 한 줄씩 해석하고 출력을 생성하지만 C에서는 컴파일러가 먼저 컴파일하고 다음과 관련하여 최적화된 출력을 생성하기 때문입니다. 하드웨어. Java 및 .NET과 같은 다른 언어의 경우 JIT 컴파일러가 런타임에 바이트 코드를 네이티브 코드로 컴파일하기 때문에 각각 Java 바이트 코드 및 .NET 바이트 코드가 Python보다 빠르게 실행됩니다. CPython은 P
Python의 표준 라이브러리에는 Python 프로그램을 통해 메일을 보내는 데 사용할 수 있는 SMTP 클라이언트 세션 개체를 정의하는 smtplib 모듈이 있습니다. 메일 서버는 인터넷을 통해 전자 메일을 처리하고 전달하는 응용 프로그램입니다. 발신 메일 서버는 이메일 전송을 위한 인터넷 표준인 SMTP 또는 Simple MailTransfer Protocol을 구현합니다. 수신 메일 서버는 두 가지 주요 유형으로 제공됩니다. POP3 또는 우체국 프로토콜 및 IMAP 또는 인터넷 메시지 액세스 프로토콜. smptlib.SM
XML(Extensible Markup Language)은 HTML과 매우 유사한 마크업 언어입니다. 휴대용이며 SQL 데이터베이스를 사용하지 않고 중소량의 데이터를 처리하는 데 유용합니다. Python의 표준 라이브러리에는 xml 패키지가 포함되어 있습니다. 이 패키지에는 ElementTree 모듈이 있습니다. 이것은 간단하고 가벼운 XML 프로세서 API입니다. XML은 계층적 데이터 형식과 같은 트리입니다. 이 모듈의 ElementTree는 전체 XML 문서를 트리로 취급합니다. Element 클래스는 이 트리의 단일 노드