프리렉 - FREELEC
http://freelec.co.kr/book/catalogue_view.asp?UID=134
이강성저
순수한 파이썬 이외에도 다양한 배포판들이 존재한다. 이 책에 소개된 순수한 배포판을 http://python.org/download/ 에서 다운 받아 설치해도 좋고, 혹은 (순수한 파이썬 + 유용한 모듈들)을 묶어놓은 여러 배포판중 하나를 설치해도 좋다. 각 배포판의 특징에 대해서는 여러분이 홈페이지를 직접 참조해보기 바란다.
여러분이 이미 알고 있는 언어와 비교를 해보기 바란다. 만일 C/C++, Java등의 언어를 알고 있다면 파이썬의 동적인 특징을 중심으로 비교하면 좋을 것이다. Visual Basic, JavaScript, PHP등과 비교를 원한다면 플랫폼이나 웹등의 실행 환경도 비교 조건이 될 것이고, 각 언어로 활용할 수 있는 영역등의 비교도 가능할 것이다.
다른 스크립트 언어와의 비교 내용도 정리해볼 수 있다. Perl, Lua, Ruby등의 언어가 대표적인 언어들이다. 비슷한 특징들도 많고 차이점도 많다. 각자 관심있는 언어와 비교해보기 바란다. 인터넷에서 검색하면 많은 문서들을 참조할 수 있다.
윈도우 버전 파이썬을 설치했다면 시작->Python3.2->Module Docs 를 선택하고 입력 창에 math 혹은 다른 키워드를 입력해 본다.
리눅스 버전에서는 다음과 같이 pydoc -p port_number
을 실행하고 웹브라우저로 접속하면 현재 설치된 패키지에 대한 목록 및 문서를 볼 수 있다.
$ pydoc -p 7464
pydoc server ready at http://localhost:7464/
파이썬 스크립트를 실행하는 방법에 관해서는 본문 1.4.6절의 내용을 각자 다시 한번 정리해보자.
본문 1.4.4절의 내용을 각자 다시 한번 정리해보자.
>>> import time
>>> time.asctime()
'Tue Jun 19 09:27:36 2012'
우선 다음과 같은 내용의 파일을 print_time.py
란 이름으로 만들어보자.
#!/usr/bin/env python3 # *nix 계열
import time
print (time.asctime())
print_time.py
파일을 읽어 들이고 F5
를 누르면 실행된다.python print_time.py
명령을 입력한다.python print_time.py
명령을 입력한다.리눅스에서 실행권을 부여한 후 직접 실행도 가능하다.
chmod a+x print_time.py ./print_time.py
import math
a, b, c = 2, -1, -15
D = b*2-4*a*c
x1 = (-b + math.sqrt(D)) / (2*a)
x2 = (-b - math.sqrt(D)) / (2*a)
print(x1, x2)
import cmath
a, b, c = 2, -1, 15
D = b*2-4*a*c
x1 = (-b + cmath.sqrt(D)) / (2*a)
x2 = (-b - cmath.sqrt(D)) / (2*a)
print(x1, x2)
ipython은 표준 파이썬 코드만 실행하는 python 인터프리터 환경에 쉘기능, 자동완성 기능, 도움말 기능, 편의 명령어(magic commands)등을 제공하는 인터프리터 환경이다. 본문에서는 표준 파이썬에 대해서 설명을 했기때문에 이 기능에 대해서 할애할 지면이 마땅치 않았지만 ipython은 훌륭한 실행환경이다. 본인도 대부분의 인터프리터 작업을 ipython에서 수행하고 있다. 꼭 한번 설치해서 사용해보기 바란다.
이 연습문제 해답이 ipython notebook
에서 작성되고 있다. 문서와 코드 실행을 동시에 할 수 있으며 plotting 기능까지 포함할 수 있다. ipython 홈페이지 문서를 참조해 ipython qtconsole과 notebook을 설치하고 동작할 수 있도록 해보자. 문제 1번에서 설명한 anaconda, enthought python distrubution, pythonxy등은 모두 ipython을 포함하고 있다.
x = linspace(0, 2*pi)
y = sin(x)
plot(x, y)
#!/usr/bin/env python
import sys
from lib2to3.main import main
sys.exit(main("lib2to3.fixes"))
Python 2.x 소스 파일 example.py가 다음과 같이 주어져 있다고 하자.
def greet(name):
print "Hello, {0}!".format(name)
print "What's your name?"
name = raw_input()
greet(name)
2to3를 이용하면 Python3용 코드로 변환할 수 있다. -w 옵션이 없다면 차이점만 표시 한다.
$ 2to3 -w example.py
example.py 파일이 다음과 같이 바뀌어 있는 것을 확인할 수 있다.
def greet(name):
print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
Python 2.x로 만든 코드를 Python3용으로 변환하고 실행 여부를 시험해 보자.
각자 실행해보기 바란다.