※ PythonPython은 인터프리터이며, 상호대화적이고, 객체-지향적인 프로그래밍 언어이다. Python에는 모듈, 예외, 동적인 형 정의, 대단히 고수준의 동적인 데이타 형, 그리고 클래스가 구현되어 있다. Python에는 놀라운 힘이 대단히 명료한 구문에 결합되어 있다. Python은 수 많은 시스템 호출과 라이브러리에 대한 인터페이스를 가지고 있다, 뿐만 아니라 다양한 윈도우 시스템에 대한 인터페이스도 있으며, C 또는 C++로 확장도 가능하다. 또한 프로그래밍 인터페이스가 필요한 어플리케이션들을 위한 확장 언어로도 사용할 수 있다. 마지막으로, Python은 이식성이 풍부하다다. 수 많은 종류의 유닉스와, 맥에서 실행되며 도스, 윈도우, NT, 그리고 OS/2 환경의 개인용 컴퓨터에서도 실행된다.※ Python의 장점ㆍ쉽다(Easy)- Python의 간단한 문법과 명료하고 깔끔한 구문은 프로그래머나 비프로그래머나 배우기 쉽고, 읽기 쉽고 사용하기 쉽다.- Python의 기본적인 문법은 algol/C/Pascal 프로그래밍 언어를 극적으로 단순화 한 것 같이 보인다. 따라서 일반적인 수학적인 기호나 다른 프로그래밍 언어에 약간의 경험이 있으면 쉽게 배울 수 있다.ㆍ강력하다(Powerful)- 거의 대부분의 계산 수식은 간략하고 직접적으로 표현된다.- 함수, 메쏘드(method), 모듈, 클래스 그리고 다른 요소들이 함수의 인수로 전달될 수 있고 자료구조에 저장될 수 있다.- 다중 상속과 지연 바인딩(late binding) 기능을 갖는 객체 지향성: Python은 객체 지향 클래스 계층구조를 생성하며name.attribute 형식으로 참조되는 객체는 동적 이름 영역(name space)를 통하여 런타임시에 결정된다.- 객체 지향과 명명된 예외처리(named exception handling): 에러나 다른 예외조건은 try..except 문으로 잡을 수 있고 try..finally를 이용하여 최종 행동을 기술할 수 있다. 이 기능은 정상적인 프로그램의 있다.- 동적 호출 열(dynamic calling sequence): Python의 호출 가능한 객체들은 선택적인 인수(optional argument), 키워드 인수나 무제한적인수의 인수를 받아들일 수 있다. 이 특징들은 간단한 선언으로 매우 포괄적(very generic)이고 설정이 매우 유연한(highly configurable) 연산을 사용할 수 있게 한다.ㆍ확장가능성과 유연성(Extensible and Filexible)- Python은 다른 소프트웨어 시스템과 인터페이스 되도록 쉽게 확장된다. 또한 Python이 다른 프로그램의 부분으로 동작할 수도 있다. 더욱이 Python은 언어 처리 영역에서는 극히 유연하다.ㆍ인터프리터 언어(Interpreted)- Python은 바이트 컴파일을 지원하는 동적으로 인터프리팅되는 언어이- Python 프로그램은 Python 대화모드에서 시험되면서 작성될 수 있다. Python 바이트 코드는 기계에 독립적이어서 다른 하드웨어나 소프트웨어 플랫폼에서 재 컴파일없이 수행된다. (Java와 같이) 예를 들면, 발전된 네트워크 응용 프로그램이 있다면 원격 컴퓨터에서 바이트코드를 가져다가 동적을 실행할 수 있다.ㆍ객체 지향(Object Oriented)- Python은 객체 지향 클래스 구조를 다중 상속과 지연 결합(late binding) 기능으로 지원한다.- Python은 진정한 의미의 핵(core)을 향한 객체 지향이다. numerical Python 확장 모듈은 숫자형으로 임의의 차원의 배열을 지원한다. MESS 확장 모듈은 Python의 대체 객체 모델을 정의한다. ni.py는 계층적인 모듈 구조를 정의한다. 이들 선택적인 모듈들은 Python 핵의 기본 연산에 대응되는 연산도 함께 제공한다.ㆍ동적(Dynamic)- Python은 동적인 형과(dynamic typing) 이름의 동적인 해결(dynamic resolution of names)을 사용한다. 예를 들면, output.write(data)는 data 으로 구현된 output 객체에 넣을 수도, 또는 data와 output의 연결에 따라서는 다른 실행 시간에 둘 다를 수행할 수도 있다.ㆍ직교적인 구조(Orthogonally structured)- Python은 작은 수의 강력한 구성으로 이루어졌다. 언어의 단순성이 다른 프로그래머의 코드를 쉽게 이해하도록 해준다.- Python의 단순성은 새로운 Python 프로그래머가 이 언어를 빠르게 이해해서 생산적인 코드를 작성할 수 있게 해준다. 이러한 단순성이 표현의 능력을 제한하는 것은 아니다. 다른 언어에서는 직접적으로 표현하기 힘드나 Python으로는 쉽게 되는 몇 가지 특징을 가지고 있다.ㆍ확장가능하다(Extendible)- Python은 외부의 프로그래밍 라이브러리로 쉽게 확장된다. 컴파인된 확장 모듈을 이용하면 새로운 데이터 타입으로도 확장한다.- 대부분의 플렛폼에서 새 컴파일된 요소가 인터프리터 안으로 동적으로 (요구에 의해서) 적재될 수 있다.ㆍ숨길수 있다(Embeddable)- 다른 프로그램에게 Python은 매운 단순한 응용 프로그램 인터페이스(API)처럼 보인다.- Python은 응용 프로그램에 숨어서 수행될 수 있다.ㆍ안정적이고, 시험되었고, 상위 호환적이다.- Python은 언제나 상위 호환적이다. 새 버전의 인터프리터는 이전 버전의 프로그램을 잘 수행한다.ㆍ이식성이 좋고 외부 소프트웨어에 친근하다- Python은 Posix 인터페이스를 사용하는 표준 C로 기술되었으므로 Posix를 지원하는 플렛폼은 무리없이 지원한다.ㆍ소스 형태로 무료이고 자유스럽게 재분배할 수 있다- Python 판권은 근본적으로 법적인 위험으로부터 저자들을 보호하며 나쁜 사용자가 판권을 가져가려는 것을 방지한다. 그 외에도, Python 프로그래머와 사용자들은 소스형태나 바이너리 형태로 그들이 원하는 거의 모든 방법으로도 사용하는 것을 허용한다. 특별히 프로그래머는 Python모듈을 이용하여 제품을 만들 수도 있으며 판매할 수도 있다.※ Python의 특징ㆍ범용성을 가진 방법으로 연결한다. 여러분이 만드는 프로그램의 기본 기능으로 사용할 수 있는 표준 묘듈을 많이 제공 하고 있어, 다른 파이썬 프로그램에서 재사용이 가능하다.- C나 C++을 이용하여 쉽게 새로운 모듈을 작성할 수 있다. Python은 프로그램 가능한 인터페이스를 사용하는 응용을 위한 확장 언어로서도 사용 가능하다.- Python은 매운 간단한 문법을 가지면서도 강력하다. Python은 모듈, 클래스, 예외 그리고 매우 고수준의 동적인 데이터 형과 동적 형변환을 지원하다. 다양한 윈도우 시스템들(X11, Motif, Tk, Mac, MFC:MS-Windows)을 비롯한 많은 시스템콜과 라이브러리를 위한 인터페이스가 있다.- Python은 많은 플렛폼에서 동작한다: 많은 버전의 UNIX, Windows, DOS, OS/2, Mac, Amiga... 여기 사용하는 시스템이 기술되지 않아도 C 컴파일러만 있으면 동작될 것이다.ㆍ간편하다.- Python은 배우기 쉽고 사용하기 쉽다. 프로그래머가 Python을 사랑하는 이유는 많은 경우, 그 빠른 실행성에 있다. 컴파일하지 않으므로 편집-테스트-디버깅 사이클이 믿을 수 없을 만큼 빠르다. 한번 작성한 모듈은 다음 코드의 작성을 위해 다시 사용된다.- C언어로 효과적으로 구현하려면 몇날며칠이 걸릴 만한 코딩라인을 간편하게 해 준다. 그리고 가장 귀찮아 했던 부분 중의 하나인 자료형의 선언부를 하지 않아도 된다는 점이다.- Python은 (정규식 매칭을 포함한) 완벽한 문자열 연산 집합을 가지고 있고, 끔찍한 메모리 관리로부터 사용자를 해방시킨다. 이러 저러한 특징들이 Python을 프로토타입 개발과 다른 특별한 프로그래밍 과제에 이상적인 언어로 만든다.ㆍPython은 컴파일러 언어가 아니다.- Python은 또한 컴파일시의 오류검사 기능이 없어도 (왜나햐면 컴파일러 언어가 아니므로) 큰 프로그램을 쓸 수 있도록 해준다. 프로그램은 다수의 모듈로부터 만들어 질 수 있고, 각 모듈은 독립된 변수 영역(name space)를g으로 코드를 혼란스럽게 만들지 않고도 필요한 부분의 에러를 감지하도록 한다.- Python은 또한 자기 자신의 코드를 볼 수 있다. 따라서, 디버거나 프로화일러(profiler)를 Python 자신으로 기술된다. 또한, 목적 코드를 바이트의 열로 변환하거나 그 반대의 변환을 하여, 다양한 분산 목적 모델 뿐 아니라 목적 코드 일관성을 유지하는데 사용된다.ㆍ정리- Python은 객체지향언어이며 생산성이 뛰어나다.- C코딩라인의 3분의 1만으로도 프로그램을 만들 수 있다.- 차세대 확장언어로서, scripting languages(perl, tcl, awk)와 systems languages(C, C++, Java)사이에 위치해 어디서나 실행될 수 있는 범용성의 언어이다.※ Python의 응용기능 영역- Python은 많은 상황에 사용된다. 엄청난 동적처리, 사용용이성, 힘, 그리고 유연성이 요구되는 곳에 사용된다.- 기본적인 텍스트 처리의 영역에서 (비핵심적인 확장을 가지지 않은) 핵심 Python은 사용하기 더 쉽고 다른 어떤 언어와 거의 마찬가지로 빠르다, 그리고 이것때문에 파이썬은 많은 시스템 관리 형태의 작업에 유용하다. 그리고 텍스트와 문자열 등등을 다루는 CGI 프로그래밍과 다른 어플리케이션의 영역 에도 유용하다.- 표준 확장 (PIL, COM, Numeric, oracledb, kjbuckets, tkinter, win32api, 등등.) 또는 (SWIG과 같은 도움 도구를 사용하거나, 혹은 ILU/CORBA 또는 COM과 같은 객체 프로토콜을 사용해서 작성한) 특수한 목적의 확장이 추가되면 Python은 대단히 편리한 "접착제" 또는 "조종간" 언어가 되어서 관련이 없는 소프트웨어 패키지들의 이질적인 모음을 작동시키는 것을 도와 준다. 예를 들어 Numeric을 oracledb와 결합함으로써 SQL 데이타베이스가 통계분석을 하도록 도울 수 있거나, 심지어는 푸리에 변환까지도 도울 수 있다. Python을 "접착제 언어"로서 특출나도록 하는 사양중.
거물도둑(대도)※ 줄거리초라한 오두막집 앞에서 한 노부부가 앉아 잠시 일손을 놓고 쉬고 있었다. 그 때 네 마리의 검은 말이 끄는 마차 한 대가 그 집 앞으로 와서 멋지게 차려 입은 한 신사가 마차에서 내리더니 그 신사는 시골식의 감자를 먹고 싶다고 요리해달라고 부탁했다. 농부는 그 신사를 귀족으로 생각하고 음식을 준비하겠다고 했다. 농부의 아내는 부엌에서 감자경단을 만드는 동안, 농부는 나무를 심기위해 정원에 구덩이를 파고있던 일을 끝내려 나그네를 데리고 정원으로 갔다. "이런 일을 함께 거들 자녀분이 없으신가요?"나그네가 물었다."아니, 아들 녀석이 하나 있지요. 하지만 여길 떠나 넓은 세상으로 멀리 가 있답니다. 그 애는 응석둥이였어요. 꾀가 많고 영리했지만 일을 배울 생각을 않고 늘 장난만 쳤지요. 결국 그 애는 멀리 떠나가 버렸고 그 이후로는 아무 소식도 없어요."농부는 작은 나무 한 그루를 구덩이에 넣고, 그 옆에 기둥을 하나 박고는 끈으로 나무 줄기의 아래쪽과 중간쯤을 묶어 기둥 꼭대기에 연결했다."이상하군요. 저쪽 구석에 있는 구부러지고 뒤틀린 나무는 왜 묶지 않아요? 저 나무야말로 땅에 닿으리만큼 휘어져서 나무 기둥에다 묶어 주면 이 나무처럼 똑바로 자랄 것 같은데요."농부가 말했다. "손님, 모르시는 말씀입니다. 그렇게 말하는 걸 보니 나무를 많이 키워보지 않으신 게 분명하군요. 저쪽에 있는 나무는 옹이 투성이의 늙은 나무랍니다. 아무도 저 나무를 더 이상 똑바로 자라게 할 수 없어요. 나무란 어릴 때 조심해서 키워야 하는 법이지요.""그건 댁의 아들도 마찬가지였을 것입니다. 노인장께서 그 애가 어렸을 때 조금만 신경을 써서 키웠더라면 그렇게 달아나지는 않았겠지요. 이제 그는 너무나 거칠어지고 굳은살이 박혀 있을 게 분명해요. 만약 그가 노인장 앞에 나타난다면 알아보시겠어요?" 나그네가 물었다."얼굴만 보고는 알아보기 힘들겠지만, 그 애에게는 특징이 하나 있어요. 날 때부터 어깨에 콩알만한 반점이 하나 있었습니다."농부의 말이 끝나자 나그네는 외투를 벗고 어깨에 난 반점을 농부에게 보여주었다. 그렇게 해서 농부는 그 신사가 아들인 것을 알게되었고 그 신사는 농부에 모든 일을 설명해주었다."아버지. 그 어린 나무는 기둥에 매어지지 않았기 때문에 휘어진 채 자랐답니다. 이젠 너무 늦었어요. 다시는 곧게 펴질 수 없게 된 거죠. 이걸 다 어디서 얻었냐구요? 전 도둑이 되었답니다. 하지만 놀라지 마세요. 저는 기술자니까요. 제 앞에서는 자물쇠도 빗장도 다 소용이 없어요. 제가 마음만 먹으면 다 제것이 되니까요. 하지만 저를 시시한 일반 도둑으로 생각지는 말아 주세요. 전 부자들 것만 훔치니까요. 그들에게는 필요도 없는 것들이죠. 가난한 사람들 것은 건드리지 않아요. 그들에게서는 아무 것도 빼앗지 않고 오히려 도와주죠. 노력과 재치와 기술을 필요로 하지 않는 것은 건드리지도 않아요."농부는 그를 아내에게로 데려갔고 그가 자기 아들이라는 말을 들은 농부의 아내는 너무 기뻤지만 그가 거물도둑이 되었다는 말을 듣고 어머니의 뺨에서는 두 줄기 눈물이 흘러 내렸다. 그는 부모님과 함께 식탁에 앉아 오랫동안 먹어본 적이 없는 초라한 식사를 했다. 식사가 끝난 후 그의 아버지는 아들을 안고 세례반 앞에 섰던 백작이 알면 아들을 교수형에 처할까 걱정했다. 아들은 걱정하지 말라고 말하고 날이 어스름해질 무렵 마차를 타고 성으로 갔다. 백작은 그가 세련된 신사가 되어 나타난 걸보고 그를 아주 친절하게 대했지만 그가 자기의 신분을 밝히고 나자 백작은 얼굴이 창백해지면서 잠시 생각한 후 이렇게 말했다."난 너의 대부다. 그러므로 네가 재판 받는 것을 면하도록 자비를 베풀어주마. 그리고 네게 관대하게 대해주겠다. 네가 스스로 거물 도둑이 된 것을 자랑스럽게 여기고 있으니, 내가 네 기술을 한번 시험해 보고 싶구나. 하지만 만약 실수하는 날에는 넌 새끼 꼬는 사람의 딸과 결혼해야 하고, 까마귀들의 울음소리가 네 결혼식의 축가가 될 것이다."도둑은 세 가지 과제를 낼 것을 요구했고 백작이 말했다."그렇다면, 첫 번째로 내 전용 말을 마구간에서 훔쳐내 보아라. 그리고 두 번째로 나와 내 아내가 잠을 자고 있는 동안 아무도 모르게 침대 시트를 빼내어 보아라. 게다가 내 아내가 손가락에 끼고 있는 결혼반지도 훔쳐내야 한다. 세 번째로 성당에 가서 신부와 성당지기를 납치해 오도록 해라. 분명히 알아두어야 할 것은 이 모든 일에 네 목숨이 달려 있다는 것이다."도둑은 가까운 도시로 가서, 늙은 농사꾼 아낙네들이 입는 옷을 한 벌 사 입고 얼굴에 갈색 칠을 하고 주름살을 그려 넣은 후 그는 작은 통에 잠오는 약을 탄 포도주를 가득 바구니에 담아 등에 짊어졌다. 날이 저물었을 때 성에 도착했고 안뜰의 바위 위에 걸터앉아 천식 걸린 노파처럼 기침을 하며, 손이 시리다는 듯 두 손을 비비기 시작했다. 마구간 문 앞에 몇 명의 병사들이 불을 피워 놓고 있다가 노파에게 가까이 와서 불을 쬐라고 말했다. 노파는 병사들에게 술 파는 사람이라고 소개한 후 얼마의 돈을 받고 그들에게 술을 주었다. 뜰에 있는 모든 병사들이 술을 먹자 도둑은 마구간 안으로 술통을 가져갔다. 한 병사가 백작의 말안장에 앉아 있었고 다른 한 병사는 말의 고비를 쥐고 있었고, 또 다른 병사는 말꼬리를 쥐고 있었다. 술을 먹은 병사들은 모두 잠이 들자 그는 말에 올라타고 성을 빠져나왔다. 날이 밝자 도둑은 훔친 말을 타고 다시 성으로 가서 백작에게 성공했음을 알렸다. 두 번째 과제 때문에 백작은 그날 밤 모든 문의 빗장을 잠근 채 총을 들고 자지 않고 도둑이 오기를 기다리고 있었다. 한편 도둑은 밤중에 교수대로 가서 교수형을 당해 죽은 죄수의 시체를 등에 업고 성으로 와서 백작의 침실이 있는 쪽 벽에 사다리를 기댄 후 시체를 어깨에 메고 올라가기 시작했다. 그의 어깨에 멘 시체의 얼굴이 창문에 아른거리자, 마침 침대에 앉아 창문을 노려보고 있던 백작이 총을 쏘았다. 도둑은 얼른 죄수를 땅에 내던지고는 사다리를 타고 재빨리 내려가 한쪽 구석에 몸을 숨겼다. 백작이 시체를 정원으로 끌고 가 시체를 묻기 위해 땅을 파는 것을 보고 도둑은 구석에서 살짝 빠져나와 백작 부인만 혼자 남아있는 그 방으로 사다리를 타고 곧장 올라가 백작의 목소리를 흉내내어 말했다."여보, 도둑은 죽었소. 하지만 그가 아무리 악당이라 해도 내 대자(代子)가 아니겠소. 그가 여러 사람 앞에서 망신당하게 하고 싶지는 않구려. 또 그의 부모를 생각하니 안됐고. 날이 밝기 전에 내 손으로 그 녀석을 묻어서 이 일이 세상에 알려지지 않게 해야겠소. 그러니 시트를 좀 주구려. 저 시체를 시트로 말아서 개처럼 보이도록 수레에 싣고 운반해야겠으니." 백작 부인은 그에게 시트를 건네주었다."당신은 내가 얼마나 인정이 많은 사람인지 알고 있지? 반지도 좀 주구려. 저 불쌍한 녀석이 거기에 제 목숨을 걸었으니 반지도 묻어 줍시다." 백작부인은 마음이 내키지 않았지만 남편의 뜻을 거스르기가 싫어서 그가 원하는 대로 손가락에서 반지를 빼서 그에게 주었다.다음날 도둑이 시트와 반지를 내보이며 모든 일을 자세히 설명해 주자 백작은 그가 정말로 꾀 많고 영리한 도둑이라는 것을 시인했다. 밤이 되자 세 번째 과제를 해결하기 위해 그는 등에 기다란 자루 하나를 메고 게와 양초들이 들어있는 꾸러미 하나를 들고 묘지에 가서 자루에 든 게를 꺼내 등딱지에다 양초를 꽂았다. 일이 끝난 후 검은 가운을 입고 아래턱에 흰 수염을 붙이고는 게를 담아왔던 자루를 어깨에 메고 성당으로 가 설교단에 섰다. 성당의 시계탑에서 12번의 종소리 중 마지막 종소리가 사라질 때쯤 그는 심판의 날이 가까워졌다고 소리치며 자신은 베드로이며 불빛은 자기의 뼈들을 주워 모으느라 기어다니는 죽은 자라고 말했다. 그리고는 천국으로 가려면 자루 안으로 들어가라고 소리쳤다. 성당에서 가장 가까운 곳에 살고 있던 신부와 성당지기가 가장 먼저 그 소리를 들었고 그들은 묘지에서 왔다갔다하는 불빛을 보고 뭔가 심상치 않은 일이 벌어진 줄 알고 성당 안으로 들어와 잠시 설교를 들은 후 천국에 갈 생각으로 자루 속으로 들어갔다. 그 즉시 도둑은 자루를 단단히 붙들어 맨 후, 자루 한가운데를 잡고 질질 끌며 설교단을 내려왔다. 멍청한 두 바보의 머리가 계단에 부딪힐 때 도둑은 산을 넘고 있다고 말했고 진흙탕을 건널 때는 물을 머금은 구름을 지나는 중이라고 말했고 성의 계단을 오를 때는 천국의 계단을 오르고 있다고 말했다. 다 올라온 후에 그는 자루를 비둘기장 안으로 밀어 넣었고 비둘기들이 푸드덕거리자 문빗장을 채우며 천사들이 기뻐하며 날개짓하고 있다고 말했다.다음날 아침, 그는 백작에게 가서 세 번째 일을 해냈다는 사실을 보고했고 사실 확인 후 신부와 성당지기를 풀어주며 백작이 말했습니다."넌 정말 도둑 기술자로구나. 네가 이겼다. 이제 가지고 싶은 것을 모두 가지고 달아나거라. 그러면 너를 해치지 않겠다. 하지만 내 땅에서 떠나야 한다. 만약 다시 발을 들여놓았다가는 교수대에 올라가야 한다는 사실을 명심해라."