회원 로그인
|
[스크랩] Python은 무엇인가?
Python 튜토리얼
릴리즈 2.4
Guido van Rossum
Fred L. Drake, Jr., editor
Python은 간단하게 배울 수 있는 강력한 언어의 하나입니다. Python에는 High레벨 데이터 구조가 효율적으로 포함되어 있어 객체 지향프로그래밍에 대해서도, 단순하면서도 효과적인 어프로치를 하고 있습니다. 세련된 문법과 데이터형을 동적으로 결정하는 기능은, 그 interpreter의 특성과 함께 Python을 이상적인 스크립트 프로그램 언어로 하는 것과 동시에, 많은 플랫폼과 폭넓은 대상 영역에 있어 신속히 어플리케이션을 개발할 수 있도록 하고 있습니다.
Python interpreter 자체와 확장 가능한 표준 라이브러리는, 소스 코드, 또는 많은 주요한 계산기환경계 전용의 바이너리 형식으로서 모두 Python Web사이트 http://www.python.org/ 로부터 무료로 받을 수 있고,한편 무료로 배포할 수 있습니다.이 사이트에서는 또, 무료로 받을 수 있는 많은 서드 파티제 Python 모듈, 프로그램, Tool류, 추가의 문서에 대해서, 그 배포물이나 포인터를 제공한다.
Python interpreter는 C 언어나 C++ 언어(혹은 C 언어로부터 호출할 수 있는 그 외의 언어)로 내장된 새로운 함수나 데이터 구조를 짜넣어 확장하는 것을 간단하게 할 수 있습니다.
Python은 또, 커스터마이즈 가능한 어플리케이션을 만들기 위한 확장기능기술 언어로서 딱 맞습니다.
이 튜토리얼에서는, Python의 언어 사양과 구조에 대해서, 그 기본적인 개념과 기능을 대충 소개 합니다.예로서 든 제목에 대해 자신의 손으로 체험하려면 수중에 Python interpreter가 있으면 편리합니다. 하지만, 어느 제목도 그 자체로 완결한 이야기가 되어 있으므로, 이 튜토리얼을 오프 라인으로 읽는 일도 가능합니다.
표준의 오브젝트나 모듈의 기술에 대해서는, 문서 「Python 라이브러리 레퍼런스(Python
Library Reference)를 참조해 주세요. C언어나 C++ 언어로 확장 모듈을 쓴다면, 「Python 인터프리타의 확장과 Embedding(Extending and Embedding the Python Interpreter)」, 및 「Python/C API 리퍼런스(Python/C API Reference)를 참조해 주세요. Python에 대해 넓고 깊게 커버하고 있는 서적도 몇 개인가 있습니다.
이 튜토리얼은 전부를 다룬 내용은 아닙니다. 또,개별의 기능에 대해 모두를 커버하고 있지는 않습니다.통상 사용되고 있는 기능조차 모두 커버되고 있지 않습니다.그 대신해, 이 튜토리얼에서는 Python 의 특별할 만한 기능을 많이 소개하고, 이 언어의 특색이나 스타일에 대해 좋은 인상을 줄 것이라 생각합니다.이 튜토리얼을 읽은 후에는, 독자 여러분은 Python 의 모듈이나 프로그램을 읽고 쓰기할 수 있게 되어, 「Python 라이브러리 레퍼런스(Python Library Reference)에 기술되어 있는 다양한 Python 라이브러리 모듈에 대해 배울 준비가 될것입니다.
一章
Python에의 의욕을 높인다
거대한 쉘 스크립트를 썼던 적이 있다면, 「어떤 한 기능을 추가하고 싶지만, 프로그램
은 이미 속도가 떨어지고,너무 거대하고,너무 복잡하다. . . 」, 혹은 「추가하고 싶은 기능에는 시스템 call이나, C언어로부터 밖에 액세스 할 수 없는 다른 함수가 필요하다. . . 」라는 기분을 이해할 수 있을 것이다. 친밀한 과제라고 하는 것은 대부분, 스크립트를 C언어로 고쳐 쓰는 만큼 대단한 일이 아닙니다. 그리고 그 과제에는 아마 가변장의 문자열이나(파일명을 소트 한 리스트와 같은) 다른 데이터형이 필요하고, 이것은 쉘 스크립트로 내장하는 것은 간단하지만 C언어로 하는 것은 큰일이 되고, 어쩌면 당신 자신은 그만큼 C언어에 대해 잘 알지 못할 것입니다.
다른 상황으로서「아마도 몇 개의 C언어의 라이브러리를 사용해 일을 해야 하는 경우에 처해 있지만, C언어로 상투적인, 프로그램 작성/컴파일/테스트/재컴파일의 사이클은 시간이 너무 걸린다. 더 빨리 프로그램을 개발하고 싶다」, 혹은, 「기능확장을 위한 언어를 사용할 수 있는 프로그램을 만들었지만, 새롭게 언어를 설계하고, 그 언어를 위한 interpreter를 내장하고, 테스트하고, 자신의 어플리케이션과 연동시키는 것 까지는 하고 싶지 않다 」라고 한 적도 있겠지요.
이러한 케이스에서는, Python은 확실히 당신에게 딱 맞는 언어입니다. Python의 사용법은 단순합니다만, 쉘스크립트보다 많은 데이터 구조를 취급할 수 있어 대규모 프로그램을 만들기 위한 서포트를 가진 진정의 프로그램 언어입니다. 한편, Python은 C언어보다 훨씬 많은 에러 체크 기구를 제공하고 있습니다. 또, 초고수준(very-high-level)의 프로그램 언어로, 유연성이 있는 시퀀스나 사전이라고 하는 고수준 데이터형이 내장되어 있습니다. 이러한 형태를 효율적으로 처리하기 위한 구조를 C언어로 하려고 하면 몇 일이나 소비하게 되어버리겠지요. 비교적 범용성이 높은 데이터형을 가지기 위해, Python은 Awk나 Perl마저 뛰어넘는 넓은 영역의 문제에 적용할 수 있습니다. 게다가, Python으로 하면, 많은 일을 앞에서 말한 언어와 적어도 같은 정도로 간단하게 해낼 수 있습니다.
Python에서는 프로그램을 모듈로 분할해 다른 Python 프로그램으로 재이용할 수 있습니다. Python에는 방대한 표준 모듈이 부속되어 있고, 프로그램을 만드는데 있어서의 기반으로서-혹은 Python 프로그래밍을 배우기 위해서— 이용할 수 있습니다. 내장된 모듈에서는 또, 파일 I/O, 시스템 콜, 소켓이라고 하는 기능이나, Tk와 같은 그래피컬 유저 인터페이스 툴 킷을 사용하기 위한 인터페이스마저도 제공하고 있습니다.
Python은 interpreter 언어입니다. 이 때문에, 컴파일이나 링크가 필요 없기 때문에, 프로그램을 개발할 때에 상당한 시간을 절약할 수 있습니다. interpreter는 대화적으로 이용할 수도 있습니다. 대화적 interpreter로 사용함으로 인해서, 이 언어의 여러가지 기능에 대해 실험해 보거나 하찮은 프로그램을 만들거나 테스트용으로 프로그램을 개발할 때에 함수를 테스트하거나 했던 것이 간단하게 할 수 있습니다. 편리한 계산기로도 됩니다.
Python에서는, 매우 컴팩트하고 읽기 쉬운 프로그램을 쓸 수 있습니다. Python으로 쓰여진 프로그램은 대체로, 같은 기능을 제공하는 C언어나 C++언어의 프로그램보다 훨씬 짧아집니다. 이것에는 다음과 같은 몇 개의 이유가 있습니다.
• High레벨의 데이터형에 의해서, 복잡한 조작을 하나의 실행문으로 표현할 수 있습니다.
• 실행문의 그룹화는 그룹의 개시나 종료의 괄호를 사용하는 대신에 인덴트로 실시할 수 있습니다.
• 변수나 인수의 선언이 불필요하게 됩니다.
Python은 확장할 수 있습니다: C언어로 프로그램을 쓰는 방법을 알고 있다면, 새로운 내장 함수나 모듈을 interpreter에 추가하는 것은 간단합니다. 이것에 의해서, 처리 속도를 결정적으로 좌우하는 조작을 최대 속도로 동작하도록 실현되거나(vender 특유의 그래픽스 라이브러리와 같이) 바이너리 형식에서 밖에 지원하지 않는 라이브러리를 Python에 링크하거나 할 수 있습니다. 그런 기분이 들면, Python interpreter를 C로 쓰여진 어플리케이션에 링크하고, 어플리케이션에 대한 확장 언어나 명령 언어로서 사용할 수도 있습니다.
1.1 여기서부터 어디로
그런데, 여러분은 이제 Python에 매우 끌리고, 좀 더 자세하게 조사해 보고 싶어졌을 것입니다. 프로그램 언어를 습득하는 최선의 방법은 사용해 보는 것이기 때문에, 여기서 해 봅시다.
다음의 장에서는, 우선 interpreter를 사용하기 위한 기능을 설명합니다. 이것은 별로 재미가 없는 정보입니다만, 후에 설명하는 예제를 시험해 보는데 있어서 불가결한 일입니다.
튜토리얼의 나머지의 부분에서는, Python 프로그램 언어와 실행 시스템의 여러가지 기능을 예제를 섞어 소개합니다. 단순한 식, 실행문, 데이터형으로부터 시작해, 함수와 모듈을 거치고, 마지막에는 예외 처리나 유저 정의 클래스라고 한 약간 고도의 개념에도 다루겠습니다.
릴리즈 2.4
Guido van Rossum
Fred L. Drake, Jr., editor
Python은 간단하게 배울 수 있는 강력한 언어의 하나입니다. Python에는 High레벨 데이터 구조가 효율적으로 포함되어 있어 객체 지향프로그래밍에 대해서도, 단순하면서도 효과적인 어프로치를 하고 있습니다. 세련된 문법과 데이터형을 동적으로 결정하는 기능은, 그 interpreter의 특성과 함께 Python을 이상적인 스크립트 프로그램 언어로 하는 것과 동시에, 많은 플랫폼과 폭넓은 대상 영역에 있어 신속히 어플리케이션을 개발할 수 있도록 하고 있습니다.
Python interpreter 자체와 확장 가능한 표준 라이브러리는, 소스 코드, 또는 많은 주요한 계산기환경계 전용의 바이너리 형식으로서 모두 Python Web사이트 http://www.python.org/ 로부터 무료로 받을 수 있고,한편 무료로 배포할 수 있습니다.이 사이트에서는 또, 무료로 받을 수 있는 많은 서드 파티제 Python 모듈, 프로그램, Tool류, 추가의 문서에 대해서, 그 배포물이나 포인터를 제공한다.
Python interpreter는 C 언어나 C++ 언어(혹은 C 언어로부터 호출할 수 있는 그 외의 언어)로 내장된 새로운 함수나 데이터 구조를 짜넣어 확장하는 것을 간단하게 할 수 있습니다.
Python은 또, 커스터마이즈 가능한 어플리케이션을 만들기 위한 확장기능기술 언어로서 딱 맞습니다.
이 튜토리얼에서는, Python의 언어 사양과 구조에 대해서, 그 기본적인 개념과 기능을 대충 소개 합니다.예로서 든 제목에 대해 자신의 손으로 체험하려면 수중에 Python interpreter가 있으면 편리합니다. 하지만, 어느 제목도 그 자체로 완결한 이야기가 되어 있으므로, 이 튜토리얼을 오프 라인으로 읽는 일도 가능합니다.
표준의 오브젝트나 모듈의 기술에 대해서는, 문서 「Python 라이브러리 레퍼런스(Python
Library Reference)를 참조해 주세요. C언어나 C++ 언어로 확장 모듈을 쓴다면, 「Python 인터프리타의 확장과 Embedding(Extending and Embedding the Python Interpreter)」, 및 「Python/C API 리퍼런스(Python/C API Reference)를 참조해 주세요. Python에 대해 넓고 깊게 커버하고 있는 서적도 몇 개인가 있습니다.
이 튜토리얼은 전부를 다룬 내용은 아닙니다. 또,개별의 기능에 대해 모두를 커버하고 있지는 않습니다.통상 사용되고 있는 기능조차 모두 커버되고 있지 않습니다.그 대신해, 이 튜토리얼에서는 Python 의 특별할 만한 기능을 많이 소개하고, 이 언어의 특색이나 스타일에 대해 좋은 인상을 줄 것이라 생각합니다.이 튜토리얼을 읽은 후에는, 독자 여러분은 Python 의 모듈이나 프로그램을 읽고 쓰기할 수 있게 되어, 「Python 라이브러리 레퍼런스(Python Library Reference)에 기술되어 있는 다양한 Python 라이브러리 모듈에 대해 배울 준비가 될것입니다.
一章
Python에의 의욕을 높인다
거대한 쉘 스크립트를 썼던 적이 있다면, 「어떤 한 기능을 추가하고 싶지만, 프로그램
은 이미 속도가 떨어지고,너무 거대하고,너무 복잡하다. . . 」, 혹은 「추가하고 싶은 기능에는 시스템 call이나, C언어로부터 밖에 액세스 할 수 없는 다른 함수가 필요하다. . . 」라는 기분을 이해할 수 있을 것이다. 친밀한 과제라고 하는 것은 대부분, 스크립트를 C언어로 고쳐 쓰는 만큼 대단한 일이 아닙니다. 그리고 그 과제에는 아마 가변장의 문자열이나(파일명을 소트 한 리스트와 같은) 다른 데이터형이 필요하고, 이것은 쉘 스크립트로 내장하는 것은 간단하지만 C언어로 하는 것은 큰일이 되고, 어쩌면 당신 자신은 그만큼 C언어에 대해 잘 알지 못할 것입니다.
다른 상황으로서「아마도 몇 개의 C언어의 라이브러리를 사용해 일을 해야 하는 경우에 처해 있지만, C언어로 상투적인, 프로그램 작성/컴파일/테스트/재컴파일의 사이클은 시간이 너무 걸린다. 더 빨리 프로그램을 개발하고 싶다」, 혹은, 「기능확장을 위한 언어를 사용할 수 있는 프로그램을 만들었지만, 새롭게 언어를 설계하고, 그 언어를 위한 interpreter를 내장하고, 테스트하고, 자신의 어플리케이션과 연동시키는 것 까지는 하고 싶지 않다 」라고 한 적도 있겠지요.
이러한 케이스에서는, Python은 확실히 당신에게 딱 맞는 언어입니다. Python의 사용법은 단순합니다만, 쉘스크립트보다 많은 데이터 구조를 취급할 수 있어 대규모 프로그램을 만들기 위한 서포트를 가진 진정의 프로그램 언어입니다. 한편, Python은 C언어보다 훨씬 많은 에러 체크 기구를 제공하고 있습니다. 또, 초고수준(very-high-level)의 프로그램 언어로, 유연성이 있는 시퀀스나 사전이라고 하는 고수준 데이터형이 내장되어 있습니다. 이러한 형태를 효율적으로 처리하기 위한 구조를 C언어로 하려고 하면 몇 일이나 소비하게 되어버리겠지요. 비교적 범용성이 높은 데이터형을 가지기 위해, Python은 Awk나 Perl마저 뛰어넘는 넓은 영역의 문제에 적용할 수 있습니다. 게다가, Python으로 하면, 많은 일을 앞에서 말한 언어와 적어도 같은 정도로 간단하게 해낼 수 있습니다.
Python에서는 프로그램을 모듈로 분할해 다른 Python 프로그램으로 재이용할 수 있습니다. Python에는 방대한 표준 모듈이 부속되어 있고, 프로그램을 만드는데 있어서의 기반으로서-혹은 Python 프로그래밍을 배우기 위해서— 이용할 수 있습니다. 내장된 모듈에서는 또, 파일 I/O, 시스템 콜, 소켓이라고 하는 기능이나, Tk와 같은 그래피컬 유저 인터페이스 툴 킷을 사용하기 위한 인터페이스마저도 제공하고 있습니다.
Python은 interpreter 언어입니다. 이 때문에, 컴파일이나 링크가 필요 없기 때문에, 프로그램을 개발할 때에 상당한 시간을 절약할 수 있습니다. interpreter는 대화적으로 이용할 수도 있습니다. 대화적 interpreter로 사용함으로 인해서, 이 언어의 여러가지 기능에 대해 실험해 보거나 하찮은 프로그램을 만들거나 테스트용으로 프로그램을 개발할 때에 함수를 테스트하거나 했던 것이 간단하게 할 수 있습니다. 편리한 계산기로도 됩니다.
Python에서는, 매우 컴팩트하고 읽기 쉬운 프로그램을 쓸 수 있습니다. Python으로 쓰여진 프로그램은 대체로, 같은 기능을 제공하는 C언어나 C++언어의 프로그램보다 훨씬 짧아집니다. 이것에는 다음과 같은 몇 개의 이유가 있습니다.
• High레벨의 데이터형에 의해서, 복잡한 조작을 하나의 실행문으로 표현할 수 있습니다.
• 실행문의 그룹화는 그룹의 개시나 종료의 괄호를 사용하는 대신에 인덴트로 실시할 수 있습니다.
• 변수나 인수의 선언이 불필요하게 됩니다.
Python은 확장할 수 있습니다: C언어로 프로그램을 쓰는 방법을 알고 있다면, 새로운 내장 함수나 모듈을 interpreter에 추가하는 것은 간단합니다. 이것에 의해서, 처리 속도를 결정적으로 좌우하는 조작을 최대 속도로 동작하도록 실현되거나(vender 특유의 그래픽스 라이브러리와 같이) 바이너리 형식에서 밖에 지원하지 않는 라이브러리를 Python에 링크하거나 할 수 있습니다. 그런 기분이 들면, Python interpreter를 C로 쓰여진 어플리케이션에 링크하고, 어플리케이션에 대한 확장 언어나 명령 언어로서 사용할 수도 있습니다.
1.1 여기서부터 어디로
그런데, 여러분은 이제 Python에 매우 끌리고, 좀 더 자세하게 조사해 보고 싶어졌을 것입니다. 프로그램 언어를 습득하는 최선의 방법은 사용해 보는 것이기 때문에, 여기서 해 봅시다.
다음의 장에서는, 우선 interpreter를 사용하기 위한 기능을 설명합니다. 이것은 별로 재미가 없는 정보입니다만, 후에 설명하는 예제를 시험해 보는데 있어서 불가결한 일입니다.
튜토리얼의 나머지의 부분에서는, Python 프로그램 언어와 실행 시스템의 여러가지 기능을 예제를 섞어 소개합니다. 단순한 식, 실행문, 데이터형으로부터 시작해, 함수와 모듈을 거치고, 마지막에는 예외 처리나 유저 정의 클래스라고 한 약간 고도의 개념에도 다루겠습니다.
댓글 0개
| 엮인글 0개
285개(14/15페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
25 | [VisualStudio] Visual Studio Express 2012 다운로드/설치 | 푸딩뱃살 | 2731 | 2013.04.06 20:12 |
24 | [Python] DC 이효리 겔러리에서 사진 추출하기 | artsOne | 934 | 2009.03.27 01:54 |
23 | [Python] 클래스 안의 함수 실행 | artsOne | 2545 | 2012.09.20 11:54 |
22 | [Python] 기본 함수들 | artsOne | 4882 | 2012.09.12 15:39 |
21 | [Python] Config Parser | artsOne | 2264 | 2012.08.28 13:55 |
20 | [Python] win32 오픈오피스 실행 | artsOne | 2154 | 2012.08.01 17:38 |
19 | [Python] 문자열의 기호들을 출력하기 | artsOne | 2868 | 2009.04.17 11:59 |
18 | [Python] python 자료형 / 자료형 출력 | artsOne | 3394 | 2009.03.30 00:54 |
17 | [Python] win32 모듈로 Excel 사용하기 | artsOne | 4113 | 2008.03.18 02:24 |
16 | [Python] 용어 정리 | artsone | 3565 | 2008.02.26 23:11 |
15 | [Python] Python 9강 - 파일 | artsone | 9963 | 2007.11.03 02:59 |
14 | [Python] Python 8강 - 객체의 복사 및 형 변환 | artsone | 5220 | 2007.11.01 04:15 |
13 | [Python] Python 7강 - 사전 | artsone | 2871 | 2007.10.30 03:26 |
12 | [Python] Python 6강 - 튜플 | artsone | 3139 | 2007.10.24 05:30 |
11 | [Python] Python 5강 - 리스트 | artsone | 7338 | 2007.10.23 22:13 |
10 | [Python] Python 4강 - 문자열 | artsone | 3700 | 2007.10.20 03:04 |
9 | [Python] Python 3강 - 수치 자료형과 연산자 | artsone | 4197 | 2007.10.18 17:01 |
8 | [Python] Python 2강 - 파이썬 문과 기본 자료형 | artsone | 5314 | 2007.10.15 02:25 |
7 | [Python] Python 1강 - 파이썬이란? | artsOne | 3418 | 2007.10.11 23:36 |
>> | [Python] [스크랩] Python은 무엇인가? | artsone | 2001 | 2008.02.26 16:20 |