Professional Documents
Culture Documents
Python (ngôn ngữ lập trình) - Wikipedia tiếng Việt
Python (ngôn ngữ lập trình) - Wikipedia tiếng Việt
Python l mt ngn ng lp trnh thng dch do Guido van Rossum to ra nm 1990. Python hon ton to kiu ng v dng c ch cp pht b nh t ng; do vy n tng t nh Perl, Ruby, Scheme, Smalltalk, v Tcl. Python c pht trin trong mt d n m m (http://www.opensource.org/) , do t chc phi li nhun Python Software Foundation (http://www.python.org/psf/about/) qun l. Theo nh gi ca Eric S. Raymond, Python l ngn ng c hnh thc rt sng sa, cu trc r rng, thun tin cho ngi mi hc lp trnh. Cu trc ca Python cn cho php ngi s dng vit m lnh vi s ln g phm ti thiu, nh nhn nh ca chnh Guido van Rossum trong mt bi phng vn ng[1].
Python
Pht trin bi Python Software Foundation Bn mi nht 3.3.0 / 20 thng 2, 2011 H iu hnh a nn Th loi Giy php Ngn ng lp trnh Gip php ca Python Software Foundation (http://www.python.org/2.4.2/license.html) http://python.org
Website
Ban u, Python c pht trin chy trn nn Unix. Nhng ri theo thi gian, n bnh trng sang mi h iu hnh t MS-DOS n Mac OS, OS/2, Windows, Linux v cc h iu hnh khc thuc h Unix. Mc d s pht trin ca Python c s ng gp ca rt nhiu c nhn, nhng Guido van Rossum hin nay vn l tc gi ch yu ca Python. ng gi vai tr ch cht trong vic quyt nh hng pht trin ca Python.
Lch s
S pht trin Python n nay c th chia lm cc giai on: Python 1: bao gm cc bn pht hnh 1.x. Giai on ny, ko di t u n cui thp nin 1990. T nm 1990 n 1995, Guido lm vic ti CWI (Centrum voor Wiskunde en Informatica - Trung tm Ton-Tin hc ti Amsterdam, H Lan). V vy, cc phin bn Python u tin u do CWI pht hnh. Phin bn cui cng pht hnh ti CWI l 1.2. Vo nm 1995, Guido chuyn sang CNRI (Corporation for National Research Initiatives) Reston, Virginia. Ti y, ng pht hnh mt s phin bn khc. Python 1.6 l phin bn cui cng pht hnh ti CNRI. Sau bn pht hnh 1.6, Guido ri b CNRI lm vic vi cc lp trnh vin chuyn vit phn mm thng mi. Ti y, ng c tng s dng Python vi cc phn mm tun theo chun GPL. Sau , CNRI v FSF (Free Software Foundation - T chc phn mm t do) cng nhau hp tc lm bn quyn Python ph hp vi GPL. Cng nm , Guido c nhn Gii thng FSF v S pht trin Phn mm t do (Award for the Advancement of Free Software). Phin bn 1.6.1 ra i sau l phin bn u tin tun theo bn quyn GPL. Tuy nhin, bn ny hon ton ging bn 1.6, tr mt s sa li cn thit. Python 2: vo nm 2000, Guido v nhm pht trin Python di n BeOpen.com v thnh lp BeOpen PythonLabs team. Phin bn Python 2.0 c pht hnh ti y. Sau khi pht hnh Python 2.0, Guido v cc thnh vin PythonLabs gia nhp Digital Creations.
vi.wikipedia.org/wiki/Python_(ngn_ng_lp_trnh) 1/13
02/03/2013
Python 2.1 ra i k tha t Python 1.6.1 v Python 2.0. Bn quyn ca phin bn ny c i thnh Python Software Foundation License. T thi im ny tr i, Python thuc s hu ca Python Software Foundation (PSF), mt t chc phi li nhun c thnh lp theo mu Apache Software Foundation. Python 3, cn gi l Python 3000 hoc Py3K: Dng 3.x s khng hon ton tng thch vi dng 2.x, tuy vy c cng c h tr chuyn i t cc phin bn 2.x sang 3.x. Nguyn tc ch o pht trin Python 3.x l "b cch lm vic c nhm hn ch trng lp v mt chc nng ca Python". Trong PEP (Python Enhancement Proposal) c m t chi tit cc thay i trong Python ([2]). Cc c im mi ca Python 3.0 s c trnh by phn cui bi ny.
c im
D hc, d c
Python c thit k tr thnh mt ngn ng d hc, m ngun d c, b cc trc quan, d hiu, th hin qua cc im sau: T kha Python tng cng s dng t kha ting Anh, hn ch cc k hiu v cu trc c php so vi cc ngn ng khc. Python l mt ngn ng phn bit kiu ch HOA, ch thng. Nh C/C++, cc t kha ca Python u dng ch thng. and assert break class def del elif for is rasie try while yield
Khi lnh Trong cc ngn ng khc, khi lnh thng c nh du bng cp k hiu hoc t kha. V d, trong C/C++, cp ngoc nhn { }c dng bao bc mt khi lnh. Python, tri li, c mt cch rt c bit to khi lnh, l tht cc cu lnh trong khi vo su hn (v bn phi) so vi cc cu lnh ca khi lnh cha cha n. V d, gi s c on m sau trong C/C++:
02/03/2013
4 i (et >0 . f dla ) 5 { . 6 . / K ln mibtut k t {n} / hi h 7 . x =( b+sr(et) /( *a; 1 qtdla) 2 ) 8 . x =( b-sr(et) /( *a; 2 qtdla) 2 ) 9 . pit(Pun tihc hinhe pa be:n) rnf"hog rn o a gim hn it\"; 1. 0 pit(x =%;x =%" x,x) rnf"1 f 2 f, 1 2; 1. } 1
1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 .
ipr mt mot ah #. .. dla=b*b4*a*c et i dla>0 f et : #K ln mi t voudn hi h , ht g x =( b+mt.qtdla)/( *a 1 ahsr(et) 2 ) x =( bmt.qtdla)/( *a 2 ahsr(et) 2 ) pit"hogtihc hinhe pa be: rn Pun rn o a gim hn it" pit"1=" x," " "2=" x rn x , 1 ; , x , 2
Cc bn hin thc
Python c vit t nhng ngn ng khc, to ra nhng bn hin thc khc nhau. Bn hin thc Python chnh, cn gi l CPython, c vit bng C, v c phn phi km mt th vin chun ln c vit hn hp bng C v Python. CPython c th chy trn nhiu nn v kh chuyn trn nhiu nn khc. Di y l cc nn trn , CPython c th chy. Cc h iu hnh h Unix: AIX, Darwin, FreeBSD, Mac OS X, NetBSD, Linux, OpenBSD, Solaris, Cc h iu hnh dnh cho my desktop: Amiga, AROS, BeOS, Mac OS 9, Microsoft Windows, OS/2, RISC OS. Cc h thng nhng v cc h c bit: GP2X, My o Java, Nokia 770 Internet Tablet, Palm OS, PlayStation 2, PlayStation Portable, Psion, QNX, Sharp Zaurus, Symbian OS, Windows CE/Pocket PC, Xbox/XBMC, VxWorks. Cc h my tnh ln v cc h khc: AS/400, OS/390, Plan 9 from Bell Labs, VMS, z/OS.
vi.wikipedia.org/wiki/Python_(ngn_ng_lp_trnh) 3/13
02/03/2013
Ngoi CPython, cn c hai hin thc Python khc: Jython cho mi trng Java v IronPython cho mi trng .NET v Mono.
Kh nng m rng
Python c th c m rng: nu ta bit s dng C, ta c th d dng vit v tch hp vo Python nhiu hm ty theo nhu cu. Cc hm ny s tr thnh hm xy dng sn (built-in) ca Python. Ta cng c th m rng chc nng ca trnh thng dch, hoc lin kt cc chng trnh Python vi cc th vin ch dng nh phn (nh cc th vin ha do nh sn xut thit b cung cp). Hn th na, ta cng c th lin kt trnh thng dch ca Python vi cc ng dng vit t C v s dng n nh l mt m rng hoc mt ngn ng dng lnh ph tr cho ng dng .
vi.wikipedia.org/wiki/Python_(ngn_ng_lp_trnh)
4/13
02/03/2013
S dng Python, ta khng cn phi khai bo bin. Bin c xem l khai bo nu n c gn mt gi tr ln u tin. Cn c vo mi ln gn, Python s t ng xc nh kiu d liu ca bin. Python c mt s kiu d liu thng dng sau:
i t l n : s n, og
nguyn (trong phin bn 3.x long c nhp vo trong kiu int). di ca kiu s nguyn l ty , ch b gii hn bi b nh my tnh. f o t s thc la: c m l x s phc, chng hn 5 4 ope: +j l s : dy trong cc phn t ca n c th c thay i, chng hn [ , 2 ' ' - . ]. Kiu it 8 , b, 15 dy khc vi kiu mng (array) thng gp trong cc ngn ng lp trnh ch cc phn t ca dy khng nht thit c kiu ging nhau. Ngoi ra phn t ca dy cn c th l mt dy khc. t p e dy trong cc phn t ca n khng th thay i. ul: s r chui k t. Tng k t trong chui khng th thay i. Chui k t c t trong du nhy n, t: hoc nhy kp. d c : t in, cn gi l "hashtable": l mt cp cc d liu c gn theo kiu {t kha: gi tr}, it trong cc t kha trong mt t in nht thit phi khc nhau. Chng hn { : " y h n , 2 1 Pto" :
"acl} Psa" s t mt tp e:
Ngoi ra, Python cn c nhiu kiu d liu khc. Xem thm trong phn "Cc kiu d liu" bn di.
Module
Python cho php chia chng trnh thnh cc module c th s dng li trong cc chng trnh khc. N cng cung cp sn mt tp hp cc modules chun m lp trnh vin c th s dng li trong chng trnh ca h. Cc module ny cung cp nhiu chc nng hu ch, nh cc hm truy xut tp tin, cc li gi h thng, tr gip lp trnh mng (socket),
a nng
Python l mt ngn ng lp trnh n gin nhng rt hiu qu. So vi Unix shell, Python h tr cc chng trnh ln hn v cung cp nhiu cu trc hn. So vi C, Python cung cp nhiu c ch kim tra li hn. N cng c sn nhiu kiu d liu cp cao, v d nh cc mng (array) linh hot v t in (dictionary) m ta s phi mt nhiu thi gian nu vit bng C. Python l mt ngn ng lp trnh cp cao c th p ng phn ln yu cu ca lp trnh vin: Python thch hp vi cc chng trnh ln hn c AWK v Perl. Python c s dng lp trnh Web. N c th c s dng nh mt ngn ng kch bn. Python c thit k c th nhng v phc v nh mt ngn ng kch bn tu bin v m rng cc ng dng ln hn. Python c tch hp sn nhiu cng c v c mt th vin chun phong ph, Python cho php ngi dng d dng to ra cc dch v Web, s dng cc thnh phn COM hay CORBA, h tr cc loi nh dng d liu Internet nh email, HTML, XML v cc ngn ng nh du khc. Python cng c cung cp cc th vin x l cc giao thc Internet thng dng nh HTTP, FTP, Python c kh nng giao tip n hu ht cc loi c s d liu, c kh nng x l vn bn, ti liu hiu qu,
vi.wikipedia.org/wiki/Python_(ngn_ng_lp_trnh) 5/13
02/03/2013
v c th lm vic tt vi cc cng ngh Web khc. Python c bit hiu qu trong lp trnh tnh ton khoa hc nh cc cng c Python Imaging Library, pyVTK, MayaVi 3D Visualization Toolkits, Numeric Python, ScientificPython, Python c th c s dng pht trin cc ng dng desktop. Lp trnh vin c th dng wxPython, PyQt, PyGtk pht trin cc ng dng giao din ha (GUI) cht lng cao. Python cn h tr cc nn tng pht trin phn mm khc nh MFC, Carbon, Delphi, X11, Motif, Tk, Fox, FLTK, Python cng c sn mt unit testing framework to ra cc cc b test (test suites).
i a! 0 f = :
tng ng vi
i a f :
C php
Sau y l c php c bn nht ca ngn ng Python:
Ton t
+ - * / / (halmt) / ci rn %(hnd) p ~(o) nt &(n) ad |(r o) ^(o) xr < (etsit < lf hf) > (ih sit > rgt hf) = (g = bn) < = > = ! (hc = k) * ( t) * ly ha
Cc kiu d liu
vi.wikipedia.org/wiki/Python_(ngn_ng_lp_trnh) 6/13
02/03/2013
Kiu s
78E0 .4-4
"el" Hlo
Kiu b (tuple)
"tsm" I' e
(,20 3 1 ., )
Kiu danh sch (list)
(, 1)
(Hlo,,) "el"1()
[.,-] 48 6
Kiu t in (dictionary)
[a,b] ''''
Ch thch
1 #dn cth . g h hc
Lnh gn
1 . 2 . 3 . 4 . 5 . 6 . 7 .
vi.wikipedia.org/wiki/Python_(ngn_ng_lp_trnh)
02/03/2013
In gi tr
1 pit"el %"%"ol!) . rn Hlo s (wrd" 2 pit" =%"% . rn i d i 3 pit" =%2 adb=%3"%ab . rn a .f n .f (,)
Cu trc r nhnh
Dng 1:
i b_hc_in1 f iut_iuk_:
02/03/2013
ei b_hc_in2 lf iut_iuk_:
Cu trc lp
1 L=[H Ni,"a Pog,"PH CiMn" . "a o" Hi hn" T o h ih] 2 frtahh i L . o hnPo n : 3 . pittahh rn hnPo 4 . 5 frii rne1) . o n ag(0: 6 . piti rn
Hm
1 dftnhm(hmb_,ta_in2 ta_inn: . e _ ta_in1 hmb_, hmb_) 2 . #ln .. h . 3 . rtr gthm eun i_r_
vi.wikipedia.org/wiki/Python_(ngn_ng_lp_trnh)
9/13
02/03/2013
Hm vi tham s mc nh:
1 dflyhax n2: . e uTu(, =) 2 . "" t vis m mcn l 2" "Ly ha h "" 3 . rtr x* eun *n 4 . 5 pitlyha3 . rn uTu() #9 6 pitlyha23 #8 . rn uTu(,)
Lp
1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 1. 0 1. 1 1. 2 1. 3 1. 4
casTnLp1 ls __: #.. . casTnLp2TnLp1: ls __(__) "" 2k t lp1" "Lp ha "" x=3 #b thv calp in hn in # dfpn_hcsl,ta_in: e hgt(ef hmb) #.. . #k to hi a=TnLp2) __( pitax rn . pitapn_hcm #ml gtgncota b rn .hgt() i r h hm in
List Comprehension
vi.wikipedia.org/wiki/Python_(ngn_ng_lp_trnh)
10/13
02/03/2013
List Comprehension l dng c php c bit (syntactic sugar) (mi c t Python 2.x) cho php thao tc trn ton b dy (list) m khng cn vit r vng lp. Chng hn yl mt dy m mi phn t ca n bng bnh phng ca tng phn t trong dy x :
y=[i* frx i x x*2 o i n ] X l ngoi l ty r: culn _h ecp L_: xet oiLi tgboli hn
Tc thc hin
L mt ngn ng thng dch, Python c tc thc hin chm hn nhiu ln so vi cc ngn ng bin dch nh Fortran, C, v.v... Trong s cc ngn ng thng dch, Python c nh gi nhanh hn Ruby v Tcl, nhng chm hn Lua[3].
Mt s thay i cn lu nht
Lnh p i ttr thnh hm p i t Theo sau p i t )ta cn nh g vo cp ngoc ( : rn rn. rn( )
So snh
vi.wikipedia.org/wiki/Python_(ngn_ng_lp_trnh) 11/13
02/03/2013
Khng cn hm c p v c p a b c th c thay bng ( > b - ( < b m, m(, ) a ) a ) S nguyn Kiu l n c i tn thnh i t og n. 1 2cho ta kt qu l s thc ch khng phi s nguyn. / Khng cn hng s s s m x n y.ait Kiu bt phn c k hiu bng 0 thay v 0 chng hn 0 2 . o , o6 Phn bit vn bn - d liu nh phn thay v Unicode - chui 8-bit Tt c chui vn bn u di dng Unicode, nhng chui Unicode m ha li l dng d liu nh phn. Dng mc nh l UTF-8. Khng th vit u a s r n " biu din chui nh trong cc phin bn 2.x " tig
Cc thay i v c php
C php mi Cc tham bin ch chp nhn keyword: Cc tham bin pha sau * r sphi c gi theo dng keyword. ag T kha mi n n o a . Mun khai bo mt bin x vi c phm vi nh hng rng hn, nhng cha n olcl mc ton cc, ta dng n n o a x olcl . Gn gi tr vo cc phn t tuple mt cch thng minh, chng hn c th vit ( , * e t b = a rs, ) r n e 5 c c a = 0 b = [ , , ] c = 4 ag() ; 123; . Dictionary comprehension, chng hn { : v f r k v i s u f thay v d c ( t f ) k o , n tf} itsuf. Kiu nh phn, chng hn b 1 0 1 100. C php c thay i
rie[iut [rmb_hc] as b_hc fo iut] ecp ln a b xet h s in
casCmtcasM: ls (eals=) ps as
Cch dng bin _ m t c a s _khng cn c h tr. _eals_ C php b loi b Khng cn du ` , thay v , dng r p . ` er Khng cn so snh < (dng ! ). > = Khng cn cc lp kiu classic.
Tham kho
vi.wikipedia.org/wiki/Python_(ngn_ng_lp_trnh) 12/13
02/03/2013
1. 2. 3. 4.
^ Bi phng vn Guido van Rossum [1] (http://www.artima.com/intv/speed.html) . ^ Ti liu PEP: [2] (http://www.python.org/peps/pep-3000.html) ^ The Computer Language Benchmark Game[3] (http://shootout.alioth.debian.org/) ^ What's new in Python 3.0[4] (http://docs.python.org/3.0/whatsnew/3.0.html)
Lin kt ngoi
Python.org (http://www.python.org/) Trang ch chnh thc Python Wiki (http://wiki.python.org/moin) Ti liu Python (http://www.python.org/doc/) Python Cheese Shop (http://cheeseshop.python.org/) Kho ng phn mm vit bng Python; trc y gi l Python Package Index (PyPI) [5] (http://commons.wikimedia.org/wiki/Image:Python_Continuation_gamedev.pdf#file) Ti liu ting Vit hng dn lp trnh game vi Python
Ly t http://vi.wikipedia.org/w/index.php?title=Python_(ngn_ng_lp_trnh)&oldid=10353099 Th loi: Ngn ng lp trnh Ngn ng lp trnh hng i tng Ngn ng lp trnh to kiu ng Ngn ng vn lnh Ngn ng lp trnh Python Phn mm t do D n dng Subversion Trang ny c sa i ln cui lc 08:10, ngy 25 thng 2 nm 2013. Vn bn c pht hnh theo Giy php Creative Commons Ghi cng/Chia s tng t; c th p dng iu khon b sung. Xem iu khon S dng bit thm chi tit. Wikipedia l thng hiu ng k ca Wikimedia Foundation, Inc., mt t chc phi li nhun.
vi.wikipedia.org/wiki/Python_(ngn_ng_lp_trnh)
13/13