파이썬 자습서
*************

팁:

  This tutorial is designed for *programmers* that are new to the
  Python language, **not** *beginners* who are new to programming.

파이썬은 배우기 쉬우면서도 강력한 프로그래밍 언어입니다. 효율적인 자료
구조와 객체 지향 프로그래밍에 대한 간단하고도 효과적인 접근법을 제공합
니다. 파이썬은 우아한 문법과 동적 타이핑(typing)을 지원하는 인터프리터
언어로서, 대부분 플랫폼과 다양한 문제 영역에서 스크립트 작성과 빠른 응
용 프로그램 개발에 이상적인 환경을 제공합니다.

The Python interpreter and the extensive standard library are freely
available in source or binary form for all major platforms from the
Python website, https://www.python.org/, and may be freely
distributed. The same site also contains distributions of and pointers
to many free third party Python modules, programs and tools, and
additional documentation.

파이썬 인터프리터에는 C 나 C++ (또는 C에서 호출 가능한 다른 언어들)로
구현된 새 함수나 자료 구조를 쉽게 추가할 수 있습니다. 파이썬은 사용자
맞춤화가 가능한 응용 프로그램을 위한 확장 언어로도 적합합니다.

This tutorial introduces the reader informally to the basic concepts
and features of the Python language and system. Be aware that it
expects you to have a basic understanding of programming in general.
It helps to have a Python interpreter handy for hands-on experience,
but all examples are self-contained, so the tutorial can be read off-
line as well.

표준 객체와 모듈에 대한 설명은 파이썬 표준 라이브러리 에서 확인하세요.
파이썬 언어 레퍼런스 는 언어에 대한 좀 더 형식적인 정의를 제공합니다.
C 나 C++ 로 확장을 작성하려면 파이썬 인터프리터 확장 및 내장 와
Python/C API reference manual 를 참조하세요. 또한 파이썬을 깊이 있게
다룬 책들도 많습니다.

이 자습서는 포괄적이려고 시도하지 않습니다. 모든 기능을 다루지는 않으
며, 이는 자주 사용되는 기능에 있어서도 마찬가지 입니다. 대신 파이썬의
가장 주목할 만한 기능들을 소개하여 언어의 맛과 스타일을 잘 느낄 수 있
도록 하고 있습니다. 이 학습서를 읽은 후에는 파이썬 모듈과 프로그램을
읽고 쓸 수 있으며, 파이썬 표준 라이브러리 에 기술된 다양한 파이썬 라이
브러리 모듈에 대해 배울 준비가 될 것입니다.

용어집 또한 살펴볼 가치가 있습니다.

* 1. 입맛 돋우기

* 2. 파이썬 인터프리터 사용하기

  * 2.1. 인터프리터 실행하기

    * 2.1.1. 인자 전달

    * 2.1.2. 대화형 모드

  * 2.2. 인터프리터와 환경

    * 2.2.1. 소스 코드 인코딩

* 3. 파이썬의 간략한 소개

  * 3.1. 파이썬을 계산기로 사용하기

    * 3.1.1. 숫자

    * 3.1.2. 텍스트

    * 3.1.3. 리스트

  * 3.2. 프로그래밍으로의 첫걸음

* 4. 기타 제어 흐름 도구

  * 4.1. "if" 문

  * 4.2. "for" 문

  * 4.3. "range()" 함수

  * 4.4. "break" 와 "continue" 문

  * 4.5. 루프의 "else" 절

  * 4.6. "pass" 문

  * 4.7. "match" 문

  * 4.8. 함수 정의하기

  * 4.9. 함수 정의 더 보기

    * 4.9.1. 기본 인자 값

    * 4.9.2. 키워드 인자

    * 4.9.3. 특수 매개 변수

      * 4.9.3.1. 위치-키워드(Positional-or-Keyword) 인자

      * 4.9.3.2. 위치 전용 매개 변수

      * 4.9.3.3. 키워드 전용 인자

      * 4.9.3.4. 함수 예제

      * 4.9.3.5. 복습

    * 4.9.4. 임의의 인자 목록

    * 4.9.5. 인자 목록 언 패킹

    * 4.9.6. 람다 표현식

    * 4.9.7. 도큐멘테이션 문자열

    * 4.9.8. 함수 어노테이션

  * 4.10. 막간극: 코딩 스타일

* 5. 자료 구조

  * 5.1. 리스트 더 보기

    * 5.1.1. 리스트를 스택으로 사용하기

    * 5.1.2. 리스트를 큐로 사용하기

    * 5.1.3. 리스트 컴프리헨션

    * 5.1.4. 중첩된 리스트 컴프리헨션

  * 5.2. "del" 문

  * 5.3. 튜플과 시퀀스

  * 5.4. 집합

  * 5.5. 딕셔너리

  * 5.6. 루프 테크닉

  * 5.7. 조건 더 보기

  * 5.8. 시퀀스와 다른 형들을 비교하기

* 6. 모듈

  * 6.1. 모듈 더 보기

    * 6.1.1. 모듈을 스크립트로 실행하기

    * 6.1.2. 모듈 검색 경로

    * 6.1.3. "컴파일된" 파이썬 파일

  * 6.2. 표준 모듈들

  * 6.3. "dir()" 함수

  * 6.4. 패키지

    * 6.4.1. 패키지에서 * 임포트 하기

    * 6.4.2. 패키지 내부 간의 참조

    * 6.4.3. 여러 디렉터리에 있는 패키지

* 7. 입력과 출력

  * 7.1. 장식적인 출력 포매팅

    * 7.1.1. 포맷 문자열 리터럴

    * 7.1.2. 문자열 format() 메서드

    * 7.1.3. 수동 문자열 포매팅

    * 7.1.4. 예전의 문자열 포매팅

  * 7.2. 파일을 읽고 쓰기

    * 7.2.1. 파일 객체의 매소드

    * 7.2.2. "json" 으로 구조적인 데이터를 저장하기

* 8. 에러와 예외

  * 8.1. 문법 에러

  * 8.2. 예외

  * 8.3. 예외 처리하기

  * 8.4. 예외 일으키기

  * 8.5. 예외 연쇄

  * 8.6. 사용자 정의 예외

  * 8.7. 뒷정리 동작 정의하기

  * 8.8. 미리 정의된 뒷정리 동작들

  * 8.9. Raising and Handling Multiple Unrelated Exceptions

  * 8.10. Enriching Exceptions with Notes

* 9. 클래스

  * 9.1. 이름과 객체에 관한 한마디

  * 9.2. 파이썬 스코프와 이름 공간

    * 9.2.1. 스코프와 이름 공간 예

  * 9.3. 클래스와의 첫 만남

    * 9.3.1. 클래스 정의 문법

    * 9.3.2. 클래스 객체

    * 9.3.3. 인스턴스 객체

    * 9.3.4. 메서드 객체

    * 9.3.5. 클래스와 인스턴스 변수

  * 9.4. 기타 주의사항들

  * 9.5. 상속

    * 9.5.1. 다중 상속

  * 9.6. 비공개 변수

  * 9.7. 잡동사니

  * 9.8. 이터레이터

  * 9.9. 제너레이터

  * 9.10. 제너레이터 표현식

* 10. Brief tour of the standard library

  * 10.1. Operating system interface

  * 10.2. File wildcards

  * 10.3. Command-line arguments

  * 10.4. Error output redirection and program termination

  * 10.5. String pattern matching

  * 10.6. 수학

  * 10.7. Internet access

  * 10.8. Dates and times

  * 10.9. Data compression

  * 10.10. Performance measurement

  * 10.11. Quality control

  * 10.12. Batteries included

* 11. 표준 라이브러리 둘러보기 --- 2부

  * 11.1. 출력 포매팅

  * 11.2. 템플릿

  * 11.3. 바이너리 데이터 레코드 배치 작업

  * 11.4. 다중 스레딩

  * 11.5. 로깅

  * 11.6. 약한 참조

  * 11.7. 리스트 작업 도구

  * 11.8. 10진 부동 소수점 산술

* 12. 가상 환경 및 패키지

  * 12.1. 소개

  * 12.2. 가상 환경 만들기

  * 12.3. pip로 패키지 관리하기

* 13. 이제 뭘 하지?

* 14. 대화형 입력 편집 및 히스토리 치환

  * 14.1. 탭 완성 및 히스토리 편집

  * 14.2. 대화형 인터프리터 대안

* 15. 부동 소수점 산술: 문제점 및 한계

  * 15.1. 표현 오류

* 16. 부록

  * 16.1. 대화형 모드

    * 16.1.1. 에러 처리

    * 16.1.2. 실행 가능한 파이썬 스크립트

    * 16.1.3. 대화형 시작 파일

    * 16.1.4. 커스터마이제이션 모듈
