Lap Trinh c Tren Linux

Embed Size (px)

Citation preview

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

BO CO MN HC

Sinh Vin Thc Hin: H Thanh Lam Phm Vn Ton Nguyn Lng Chnh Gio Vin: Tiu ng NhnLp 05CT2 GV Tiu ng Nhn Trang 1 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

Nhn xt ca gio vin ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... ............................................................................................................... im

Lp 05CT2

GV Tiu ng Nhn

Trang 2 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

Lp 05CT2

GV Tiu ng Nhn

Trang 3 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

I.LP TRNH PYTHONMc lc:

III. LP TRNH C TRN LINUX CI T V S DNG TH VIN NCURES.........................................................................................................5 A: Ci t v bt u vi NCURSES ............................................................5 A. Tng quan..................................................................................................6 I. Gii thiu v Python................................................................................6 II. Lch s pht trin ca Python.................................................................6 III. S lc v c im ca Python:..........................................................7 1.T kho:...............................................................................................7 2.Khi lnh..............................................................................................7 3.Kh nng m rng................................................................................8 4.Trnh thng dch...................................................................................8 5.Lnh v cu trc iu khin.................................................................9 6.H thng kiu d liu...........................................................................9 7.Module ( khi chng trnh )...............................................................9 8.a nng:.............................................................................................10 9.Multiple paradigms (a bin ha)......................................................10 IV. Cc phin bn ni ting Python..........................................................10 B. Tm hiu v kin trc lp trnh Python.....................................................11 I. Cu trc v k thut lm vic vi d liu trong Python:.......................11 II. C php v cc cu trc lp trnh c bn trong Python........................15 1.Ton t:..............................................................................................15 2.Ch thch............................................................................................16 3.Lnh gn.............................................................................................16 4. In gi tr.............................................................................................16 5.Cu trc r nhnh vi cu lnh if: .....................................................16 6.Cu trc lp vi lnh for v while:.....................................................18 7.Hm range( ):......................................................................................19 8.Cc cu lnh break v continue, v mnh else trong vng lp......19 9.Lnh pass............................................................................................20 10. S tng ng gia true v mt gi tr khc 0..............................20 III. Hm trong Python...............................................................................21 1.Xy dng hm....................................................................................21 IV. Cc k thut v module.......................................................................23 1.Khi nim v cch s dng module trong python..............................23 2.Cc module chun..............................................................................24

Lp 05CT2

GV Tiu ng Nhn

Trang 4 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

3.Th vin cc hm ton hc.................................................................25 V. Thao tc vo v ra.................................................................................33 1.File Input............................................................................................33 2.Output.................................................................................................34 VI. Lp trnh giao din:.............................................................................35 1.Tkinter:...............................................................................................35 2.PyGTK...............................................................................................36 3.PyQt:...................................................................................................36 4.wxPython............................................................................................36 Ti liu tham kho:.......................................................................................36

III. LP TRNH C TRN LINUX CI T V S DNG TH VIN NCURESA: Ci t v bt u vi NCURSES1. Gii thiu v ci t NCURSES .................................................................50 2. Ti chng trnh v ci t.....................................................................50 3. Cc chng trnh u tin vi NCURSES:.............................................50 a. Chng trnh 1:(Quen thuc) Hello World!!!....Error: Reference source not found0 Chng trnh 2: To menu n gin Error: Reference source not found1

Lp 05CT2

GV Tiu ng Nhn

Trang 5 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

A. Tng quan Gii thiu v Python Python l mt ngn ng lp trnh hng i tng rt thng dng dng vit cc tin ch h thng v cc on m trn Internet. N cng c s dng nh ngn ng kt dnh ng vai tr tch hp C v C++. c to ra bi Guido van Rossum ti Amsterdamnm 1990. Python hon ton to kiu ng v dng c ch cp pht b nh t ng; do vy n gn ging nh Perl, Ruby, Scheme, Smalltalk, v Tcl. Python c pht trin trong mt d n m m, do t chc phi li nhun Python Software Foundation qun l. Python bn 2.4.3 c pht hnh vo 29 thng 3, 2006. Bn tip theo l Python 2.5 release candidate 2. Gn y nht, u thng 8/2006 Microsoft cho ra mt bn phn phi th nghim IronPython 1.0, va tch hp tt vi .Net Framework, va hon ton k tha ngn ng Python. IronPython cn tn dng CLI ( nn tng ngn ng chung ) t hiu nng cao, chy nhanh hn 1.5 ln so vi Python nn C thng thng da trn thang o benchmark. 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. Ban u, Python c pht trin chy trn nn Unix. Nhng ri theo thi gian, n bnh trng sang mi h iu hnh t 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 pht trin ca Python. 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 nguyn nhn ny, cc phin bn Python u tin u do CWI pht hnh. Phin bn cui cng pht hnh ti CWI l 1.2. o Vo nm 1995, Guido chuyn sang Corporation for National Research Initiatives (CNRI) Reston, Virginia. Ti y, ng pht hnh mt s phin bn khc. Python 1.6 l phin bn cui cng pht hnh ti CNRI. o 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 Free Software Foundation (FSF) cng nhau hp tc lm bn quyn Python ph hp vi GPL. Cng nm , GuidoLp 05CT2 GV Tiu ng Nhn Trang 6 / 55

I.

II.

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

c nhn gii thng FSF Award for the Advancement of Free Software. o 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. o 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: V s pht trin ca Python trong tng lai, cc nh pht trin vn ang tho lun v phin bn mi: Python 3.0 (d n gi l Python 3000 hoc Py3K). D kin, dng 3.x s khng hon ton tng thch vi dng 2.x. Nhm pht trin cho bit s lp nhng ch h ca ngn ng. 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". Tuy nhin, cho n nay vn cha c k hoch c th cho pht trin Python 3. S lc v c im ca Python:

III.

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: 1. T kho: 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. Nh C/C++, cc t kha ca Python u dng ch thng. Di y l h thng t kha chun:

and,del,from,not,while,as,elif,global,or,with,asser t,else,if,pass,yield,break,except,import,print,clas s,exec,in,raise,continue,finally,is,return,def,for, lambda,try2. Khi lnh Python, 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++: #include Lp 05CT2 GV Tiu ng Nhn Trang 7 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

//... delta = b * b 4 * a * c; if (delta > 0) { // Khi lnh mi bt u t k t { n } x1 = (- b + sqrt(delta)) / (2 * a); x2 = (- b - sqrt(delta)) / (2 * a); printf("Phuong trinh co hai nghiem phan biet:\n"); printf("x1 = %f; x2 = %f", x1, x2); } on m trn c th c vit li bng Python nh sau: import math #... delta = b * b 4 * a * c if delta > 0: # Khi lnh mi, tht vo u dng x1 = (- b + math.sqrt(delta)) / (2 * a) x2 = (- b math.sqrt(delta)) / (2 * a) print "Phuong trinh co hai nghiem phan biet:" print "x1 = ", x1, "; ", "x2 = ", x2 Ta c th s dng tab hoc khong trng tht cc cu lnh vo. 3. 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 . 4. Trnh thng dch Python l mt ngn ng lp trnh dng thng dch. u im ca thng dch l gip ta tit kim thi gian pht trin ng dng v khng cn phi thc hin bin dch v lin kt. Trnh thng dch c th c s dng chy file script, hoc cng c th c s dng mt cch tng tc. ch tng tc, trnh thng dch Python tng t shell ca cc h iu hnh h Unix, ti , ta c th nhp vo mt biu thc ti mt thi im ri enter, v kt qu thc thi s c hin th ngay lp tc. c im ny rt hu ch cho ngi mi hc, gip h nghin cu tnh nng ca

Lp 05CT2

GV Tiu ng Nhn

Trang 8 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

ngn ng; hoc cc lp trnh vin chy th m trong sut qu trnh pht trin phn mm. Ngoi ra, n cng c th c s dng nh l mt my tnh. 5. Lnh v cu trc iu khin Mi cu lnh trong Python nm trn mt dng m ngun. Ta khng cn phi kt thc cu lnh bng bt k k t g. Cng nh cc ngn ng khc, Python cng c cc cu trc iu khin. Chng bao gm: Cu trc r nhnh: cu trc if (c th s dng thm elif hoc else), dng thc thi c iu kin mt khi m c th. Cu trc lp, bao gm: Lnh while: chy mt khi m c th cho n khi iu kin lp c gi tr false. Vng lp for: lp qua tng phn t ca mt dy, mi phn t s c a vo bin cc b s dng vi khi m trong vng lp. Python cng c t kha class dng khai bo lp (s dng trong lp trnh hng i tng) v lnh def dng nh ngha hm. 6. H thng kiu d liu Python s dng h thng kiu duck typing, cn gi l latent typing (hm ngha: ngm). C ngha l, Python khng kim tra cc rng buc v kiu d liu ti thi im dch, m l ti thi im thc thi. Khi thc thi, nu mt thao tc trn mt i tng b tht bi, th c ngha l, i tng khng s dng mt kiu thch hp. Python cng l mt ngn ng nh kiu mnh. N cm mi thao tc khng hp l, v d cng mt con s vo chui. 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: int, long: s nguyn float: s thc complex: s phc list: chui c th thay i tuple: chui khng th thay i str: chui k t khng th thay i dict: t in set: mt tp khng xp theo th t, , mi phn t ch xut hin mt ln. Ngoi ra, Python cn c nhiu kiu d liu khc. 7. Module ( khi chng trnh ) Python cho php chia chng trnh thnh modules c th s dng li trong cc chng trnh khc. N cng c sn mt tp hp cc modules chun m ta c th s dng li trong chng trnh ca ta. Cc th vin ny cung cp nhiu th, nh file I/O, cc li gi h thng, sockets,Lp 05CT2 GV Tiu ng Nhn Trang 9 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

8. 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. V cc l do , Python l mt ngn ng lp trnh cp rt cao. N cng c sn nhiu kiu d liu cp cao, v d nh cc mng linh hot (flexible arrays) ( ) v t in (dictionaries) m ta phi mt nhiu thi gian hin thc trn C. Python cng thch hp vi cc chng trnh ln hn c Awk v Perl. Python cng c s dng lp trnh Web. N c th c s dng nh l mt ngn ng kch bn. Python c thit k c th nhng v phc v nh l mt ngn ng kch bn tu bin v m rng cc ng dng ln hn. 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 ( ). N h tr cc nh dng email, d liu Internet, HTML, XML v cc ngn ng nh du khc. Python cng ng dng tt c cc giao thc Internet thng dng nh HTTP, FTP, Python cung cp giao tip n hu ht c s d liu, c kh nng x l vn bn, ti liu hiu qu, v c th lm vic tt vi cc cng ngh Web khc. Python cng c bit hiu qu cho lp trnh tnh ton khoa hc qua cc cng c Python Imaging Library, VTK, MayaVi 3D Visualization Toolkits, Numeric Python, ScientificPython, Python cng c th c s dng pht trin cc ng dng Desktop. Ngi dng c th dng wxPython, PyQt, PyGtk pht trin cc ng dng giao din ha (GUI) cht lng cao. Python c th h tr cc GUI frameworks khc nh MFC, Carbon, Delphi, X11, Motif, v Tk. Python cng c sn mt unit testing framework to ra cc cc b test (test suites). 9. Multiple paradigms (a bin ha) Python l mt ngn ng a bin ha (multiple paradigms). C ngha l, thay v p buc mi ngi phi s dng duy nht mt phng php lp trnh, Python li cho php s dng nhiu phng php lp trnh khc nhau: hng i tng, c cu trc, chc nng, hoc ch hng n mt kha cnh. Python kiu kiu ng v s dng b thu gom rc qun l b nh. Mt c im quan trng na ca Python l gii php tn ng, kt ni tn bin v tn phng thc li vi nhau trong sut thc thi ca chng trnh.

IV.

Cc phin bn ni ting Python

CPython y l phin bn u tin v c duy tr lu nht ca Python, c vit trong C. Nhng c im ca ngn ng mi xut hin u tin t y Jython

Lp 05CT2

GV Tiu ng Nhn

Trang 10 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

L phin bn Python trong mi trng Java. Bn ny c th c s dng nh l mt ngn ng script cho nhng ng dng Java. N cng thng c s dng to ra nhng tests th nghim cho th vin Java Python for .NET Phin bn ny tht ra s dng phin bn Cpython, nhng n l mt ng dng .NET c qun l, v to ra th vin .NET sn dng. Bn ny c xy dng bi Brian Lloyd. IronPython L mt bn Python tip theo ca .NET, khng ging nh Python.NET y l mt bn Python hon chnh, to ra IL, v bin dch m Python trc tip vo mt tp hp .NET. PyPy PyPy c vit trn Python, thm ch c vic thng dch tng byte m cng c vit trn Python. N s dng Cpython nh mt trnh thng dch c s. Mt trong nhng mc ch ca d n cho ra i phin bn ny l khuyn khch s th nghim bn thn ngn ng ny lm cho n d dng hn sa i thng dch (bi v n c vit trn Python).

B.I.

Tm hiu v kin trc lp trnh Python

Cu trc v k thut lm vic vi d liu trong Python:

Do Python khng c mt c php r rng nh ngha bin mi, nn ch c th khai bo mt bin bng cch gn gi tr c th cho n. Bin s t ng c gii phng khi ra khi phm vi ca chng trnh s dng n.Cc v d y th >>> l du nhc lnh ca trnh thng dch. Di y l h thng kiu d liu chun:

-

Kiu None: Kiu ny ch c 1 gi tr , s dng din t s vng mt ca gi tr trong nhiu trng hp , v d n c tr v t hm m xc nh trc s khng tr v g. Gi tr thc ca n l false. Kiu NotImplemented : Kiu ny ch c 1 gi tr , ch c 1 i tng c gi tr ny .i tng c truy cp thng qua tn c xy dng sn NotImplemented. Cc phng thc s hc v so snh c th tr v kiu gi tr ny nu chng cha ci t hnh ng cho ton t c cung cp.Gi tr thc ca n l true. Kiu Ellipsis : Kiu ny cng c gi tr 1 n , cng ch c 1 i tng c gi tr ny . i tng c truy cp thng qua tn c xy dng

Lp 05CT2

GV Tiu ng Nhn

Trang 11 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

sn Ellipsis . N c s dng ch ra s hin din ca c php . . Gi tr thc ca n l true. Kiu Numbers: c to ra bi cc k t s v tr v kt qu bi php ton s hc hoc cc hm s hc. i tng numbers l bt bin, gi tr ca n khng thay i k t khi c to ra. C nhng gii hn v gi trca s trong my tnh. Python phn bit gia s nguyn, s du phy ng, v s phc: Integers C 3 loi s nguyn: o Plain integers Biu din cc s nguyn trong khong -2147483648 n 2147483647. Vi cc thao tc dch v mt n , kiu s ny c gi nh l s b 2 ,32 bit hoc nhiu hn. o Long integer - Biu din mt khong khng gii hn ca s nguyn. o Boolean - Biu din gi tr true hay false. i tng miu t 2 gi tr ny gi l i tng logic. Kiu Booleans l mt kiu con ca kiu Plain Integers, v gi tr ca n ging nh 0 v 1 Kiu s thc floating point numbers, v kiu s phc complex numbers khai bo 1 s thc ch vic gn gi tr ca bin cho1 s thc, cng nh vy i vi s phc: >>> X = 1.0 >>>Y = 2+3j Mt s phc gm 2 phn thc v o, l 2 s du phy ng. N c thc ly thng qua thuc tnh z.real v z.image.

-

Kiu chui String , gi tr ca string c t trong cp du hoc

. >>>a = abcdefg >>>b = 12345678 -> a[0] = a b[1] = 2 Kiu t in Dictionary - nh ngha mt quan h 1-1 gia kho v gi tr , khng th c kho trng nhau trong t in. V d khai bo mt t in : >>> d = {"server":"mpilgrim","database": "master"} >>> d {'server': 'mpilgrim', 'database': 'master'} >>> d["server"] 'mpilgrim' >>> d["database"] 'master' >>> d["mpilgrim"] Traceback (innermost last):Lp 05CT2 GV Tiu ng Nhn Trang 12 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

File "", line 1, in ? KeyError: mpilgrim

-

Kiu danh sch List lm vic nh l 1 mng cc i tng. Sau y l cc phng thc ca List: append(x): Thm mt thnh phn vo cui ca danh sch, tng ng vi: a[len(a):] = [x]. extend(L): M rng danh sch bng cch thm tt c cc thnh phn trong danh sch nhn. Tng ng vi a[len(a):] = L. insert(i,x): Chn mt phn t vo mt v tr nh. i s u tin i l ch s ca phn t trc ch s chn, v th a.insert(0, x) chn ti v tr u ca danh sch, v a.insert( len(a), x) tng ng vi a.append(x). remove(x): Loi b phn t u tin trong danh sch m c gi tr l x.Nu khng c phn t nh vy th bo li. pop([i]): Loi b phn t ti v tr i trong danh sch, v tr v n. Nu khng xc nh ch s, a.pop( ) s loi b v tr v phn t cui cng trong danh sch. index(x): Tr v ch s ca phn t c gi tr x u tin danh sch. Nu khng c phn t nh vy s xy ra li. count(x): Tr v s ln x xut hin trong danh sch. sort( ): Sp xp cc thnh phn ca danh sch. reverse( ): o ngc cc phn t trong danh sch. Ta xem xt cc v d sau: Khai bo mt List nh sau >>> li = ['a', 'b', 'mpilgrim', 'z', 'example'] li[0] = a li[1] = b li[3]= z Thay i ni dung danh sch >>> li ['a', 'b', 'mpilgrim', 'z', 'example'] >>> li.append("new") >>> li ['a', 'b', 'mpilgrim', 'z', 'example', 'new'] >>> li.insert(2, "new") >>> li ['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new'] Tm kim trong List >>> liLp 05CT2 GV Tiu ng Nhn Trang 13 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements'] >>> li.index("example") 5 >>> li.index("new") 2 Xo phn t trong list >>> li ['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements'] >>> li.remove("z") >>> li ['a', 'b', 'new', 'mpilgrim', 'example', 'new', 'two', 'elements'] >>> li.remove("new") >>> li ['a', 'b', 'mpilgrim', 'example', 'new', 'two', 'elements'] S dng cc ton t >>> li = ['a', 'b', 'mpilgrim'] >>> li = li + ['example', 'new'] >>> li ['a', 'b', 'mpilgrim', 'example', 'new'] >>> li += ['two'] >>> li ['a', 'b', 'mpilgrim', 'example', 'new', 'two'] - Kiu Tuple. y l mtdanh sch khng thay i >>> t = ("a", "b", "mpilgrim", "z", "example") >>> t ('a', 'b', 'mpilgrim', 'z', 'example') >>> t[0] 'a' >>> t[1] 'example' >>> t[1:3] ('b', 'mpilgrim') Cc phng thc insert,index,append,extend nh vi list khng th thc hin c.Tuy nhin in th thc hin c. Tuple nhanh hn list v c s dng khi cc phn tca n l c nh khng thay i, vd nh key trong kiu t in. - Kiu sets: Mt set l mt tp khng c th t v khng c cc phn t trng lp. Cng dng c bn l kim tra thnh vin, v loi tr cc mc lp. i

Lp 05CT2

GV Tiu ng Nhn

Trang 14 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

tng set cng h tr cc php ton nh: hp, giao, hiu, v hiu i xng. Di y l mt v d: >>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana'] >>> fruit = set(basket) # create a set without duplicates >>> fruit set(['orange', 'pear', 'apple', 'banana']) >>> 'orange' in fruit # fast membership testing True >>> 'crabgrass' in fruit False >>> # Demonstrate set operations on unique letters from two words >>> a = set('abracadabra') >>> b = set('alacazam') >>> a # unique letters in a set(['a', 'r', 'b', 'c', 'd']) >>> a - b # letters in a but not in b set(['r', 'd', 'b']) >>> a | b # letters in either a or b set(['a', 'c', 'r', 'd', 'b', 'm', 'z', 'l']) >>> a & b # letters in both a and b set(['a', 'c']) >>> a ^ b # letters in a or b but not both set(['r', 'd', 'b', 'm', 'z', 'l'])

II. C php v cc cu trc lp trnh c bn trong Python 1. Ton t:Python s dng cc ton t sau: + - * / // (chia lm trn) % (phn d) ** (ly tha) ~ (not) & (and) | (or) ^ (xor) > (right shift) == (bng) = != (khc) 2. Ch thch Trong Python vit dng ch thch ta s dng du # # dng ch thch 3. Lnh gn tn bin = biu thc x = 23.8 y = -x ** 2 z1 = z2 = x + y loiChao = "Hello!" i += 1 # tng bin i thm 1 n v

4. In gi trprint biu thc print (7 + 8) / 2.0 print (2 + 3j) * (4 - 6j) Ni suy chui (string interpolation) print "Hello %s" %("world!") print "i = %d" %i print "a = %.2f and b = %.3f" %(a,b)

5. Cu trc r nhnh vi cu lnh if:C 3 dng cu trc r nhnh: Dng 1: if biu_thc_ng: # lnh ... Dng 2: if biu_thc_ng: # lnh ... else: # lnh ... Dng 3: if biu_thc_ng: # lnh ... elif: # lnh ... else: # lnh ...

Lp 05CT2

GV Tiu ng Nhn

Trang 16 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

C th c nhiu cp elif lin tip. V d: >>> x = int(raw_input("Please enter an integer: ")) >>> if x < 0: ... x = 0 ... print 'Negative changed to zero' ... elif x == 0: ... print 'Zero' ... elif x == 1: ... print 'Single' ... else: ... print 'More'

Lp 05CT2

GV Tiu ng Nhn

Trang 17 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

6. Cu trc lp vi lnh for v while:C 2 dng cu trc lp vi while v for. a. Lnh for: for phn_t in dy # lnh ... V d: L = ["Ha Noi", "Hai Phong", "TP Ho Chi Minh"] for thanhPho in L: print thanhPho for i in range(10): print i Cu lnh for trong Python khc mt cht so vi trong C hoc Pascal. Lnh for lp li qua cc thnh phn ca mt chui bt k (nh l list hoc string), theo th t m cc thnh phn xut hin trong chui. V d: >>> # Measure some strings: ... a = ['cat', 'window', 'defenestrate'] >>> for x in a: ... print x, len(x) ... cat 3 window 6 defenestrate 12 V l do s dng nh trn cho nn s khng an ton nu ta sa i mt chui m ang s dng lp ( iu ny ch xy ra vi kiu chui kh bin). Trong trng hp cn thay i chui ( v d lp li nhng thnh phn no ) th phi lp qua mt bn sao ca chui ban u. Ch cn dng k t : lm iu ny: >>> for x in a[:]: # make a slice copy of the entire list ... if len(x) > 6: a.insert(0, x) ... >>> a ['defenestrate', 'cat', 'window', 'defenestrate'] b. Lnh while: while biu_thc_ng: # lnh ...

Lp 05CT2

GV Tiu ng Nhn

Trang 18 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

7. Hm range( ): Nu cn lp qua mt chui s, hm range( ) c th c s dng. N to ra mt danh sch cha chui cc s hc: >>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] im kt thc cho khng bao gi l mt phn ca chui s to ra; range(10) to ra mt danh sch 10 gi tr,ging nh ch s cc thnh phn ca mt chui chiu di 10. Cng c th t cho range( ) v tr bt u, hoc xc nh mt bc tng khc. >>> range(5, 10) [5, 6, 7, 8, 9] >>> range(0, 10, 3) [0, 3, 6, 9] >>> range(-10, -100, -30) [-10, -40, -70] lp qua ch s ca mt chui, s dng kt hp range( ) v len( ) nh di y: >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): ... print i, a[i] ... 0 Mary 1 had 2 a 3 little 4 lamb

8. Cc cu lnh break v continue, v mnh else trong vng lpCu lnh break, ging nhau C, nhy ra khi vng lp ngay trc n m cha n. Cu lnh continue, cng k tha t C, tip tc thc hin vi gi tr lp tip theo ca vng lp. Ngoi ra, cc cu lnh lp cng c th s dng mnh else. N s c thc hin khi vng lp kt thc ( n cui ca danh sch vi for, hoc khi gp iu kin sai vi while ), nhng khng c thc hin khi vng lp kt thc bng lnh break. Xem xt v d di y tm s nguyn t: >>> for n in range(2, 10): ... for x in range(2, n): ... if n % x == 0: ... print n, 'equals', x, '*', n/x ... breakLp 05CT2 GV Tiu ng Nhn Trang 19 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

... else: ... # loop fell through without finding a factor ... print n, 'is a prime number' ... 2 is a prime number 3 is a prime number 4 equals 2 * 2 5 is a prime number 6 equals 2 * 3 7 is a prime number 8 equals 2 * 4 9 equals 3 * 3 9. Lnh pass Cu lnh pass khng cha g thm ngoi t kha. N c th c s dng khi mt lnh c ch i nhng chng trnh khng cn c hnh ng no. V d: >>> while True: ... pass # Busy-wait for keyboard interrupt ...

10. S tng ng gia true v mt gi tr khc 0Cng nh C/C++, bt k mt gi tr khc 0 no cng tng ng vi true v ngc li, mt gi tr 0 tng ng vi false. Nh vy: if a != 0: tng ng vi if a:

Lp 05CT2

GV Tiu ng Nhn

Trang 20 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

III.

Hm trong Python

1. Xy dng hm C php mt hm trong Python nh sau: def tn_hm (tham_bin_1, tham_bin_2, ...) # lnh ... return gi_tr_hm Trong def l t kha bt buc dng khai b hm, tip theo l tn hm c t theo qui cch t tn, v cui cng l danh sch i s(nu c). V d: def binhPhuong(x): return x*x Cu lnh u tin ngay sau khai bo tn hm c th l mt chui k t ty (string), c dng ch dn cho hm (thng gi l docstring). Cc tham s khng cn xc nh kiu , Python s t xc nh chng da theo gi tr c truyn khi gi hm. Python khng phn bit truyn tham bin hay truyn tham tr khi m bn thn bin cng khng cn khai bo. V d mt hm tnh s Fibonacy def fib(n): print 'n =', n if n > 1: return n * fib(n 1) else: print 'end of the line' return 1 hoc nh sau: ( in ra dy Fibonacci n mt gii hn ty ) >>> def fib(n): # write Fibonacci series up to n ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ... while b < n: ... print b, ... a, b = b, a+b ... >>> # Now call the function we just defined:Lp 05CT2 GV Tiu ng Nhn Trang 21 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

... fib(2000) 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 Do khng c khai bo r rng u hm v kt thc hm ,ch c du : nn quy cch vit hm phi kh ph thuc vo cch tht vo ca cc lnh. y def fib(n): l khai bo hm , n phi c tht vo it nht , cc lnh tip theo nm bn trong hm do vy phi tht vo nhiu hn, cc lnh print , if , else ngang hng nhau, lnh return n*fib(n-1) phi tht vo nhiu hn if... Mt nh ngha hm a tn hm vo mt bng k hiu hin thi. Gi tr ca tn hm l mt kiu m c thng dch nh l mt hm ngi s dng nh ngha. Gi tr c th c ng k mt tn khc m n cng c th s dng nh mt hm. iu ny nh l mt thao tc i tn hm: >>> fib >>> f = fib >>> f(100) 1 1 2 3 5 8 13 21 34 55 89 Khi hm khng xc nh kiu gi tr tr v (ging nh hm fib trn) n ngm nh tr v mt gi tr gi l None. Ta c th xem gi tr ny nh sau: >>> print fib(0) None Cng rt n gin vit mt hm tr v mt danh sch chui Fibonacci thay v in ra n: >>> def fib2(n): # return Fibonacci series up to n ... """Return a list containing the Fibonacci series up to n.""" ... result = [] ... a, b = 0, 1 ... while b < n: ... result.append(b) # see below ... a, b = b, a+b ... return result ... >>> f100 = fib2(100) # call it >>> f100 # write the result [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

Lp 05CT2

GV Tiu ng Nhn

Trang 22 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

IV.

Cc k thut v module

1. Khi nim v cch s dng module trong python Nh ni,Python cho php chia chng trnh thnh modules c th s dng li trong cc chng trnh khc. N cng c sn mt tp hp cc modules chun m ta c th s dng li trong chng trnh ca ta. Cc th vin ny cung cp nhiu th, nh file I/O, cc li gi h thng, sockets,Trong phn ny chng ta s tm hiu cc k thut, c im ca cc module. Nu thot khi trnh thng dch Python v vo li n, nhng nh ngha (cc hm v bin) vit s b mt. V th, nu mun vit chng trnh tn ti c lu, tt nht l s dng mt trnh son tho vit mt file lm u vo cho trnh bin dch ri chy file . Ci ny c gi l mt script (kch bn). Hoc khi mun s dng mt hm xy dng trong mt vi chng trnh m khng mun copy nh ngha ca n vo tng chng trnh. h tr iu ny, Python c mt cch t cc nh ngha hm trong mt file v s dng chng nh mt kch bn hoc trong mt instance tng tc ca trnh thng dch. Mt file nh vy gi l mt module. Cc nh ngha t mt module c th c nhp vo mt module khc hoc vo module chnh (tp hp cc bin m c th truy nhp n mt script c thi hnh ti mc cao nht v trong ch tnh ton). Mt module l mt file cha cc nh ngha v cu lnh Python. Tn file l tn module vi phn m rng l .py. Trong mt module, tn ca module (nh l mt xu) l sn c nh gi tr ca bin ton cc __name__. V d, dng trnh son tho, son file fibo.py vi ni dung nh sau: . # Fibonacci numbers module def fib(n): # write Fibonacci series up to n a, b = 0, 1 while b < n: print b, a, b = b, a+b def fib2(n): # return Fibonacci series up to n result = [] a, b = 0, 1 while b < n: result.append(b) a, b = b, a+b return result By gi m trnh thng dch Pyhton v nhp module ny bng lnh di y:Lp 05CT2 GV Tiu ng Nhn Trang 23 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

>>> import fibo Thao tc ny khng nhp tn ca cc hm c nh ngha trong fibo trc tip vo trong bng k hiu hin thi; n ch nhp tn ca module fibo vo . S dng tn module ny c th truy nhp vo cc hm: >>> fibo.fib(1000) 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 >>> fibo.fib2(100) [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] >>> fibo.__name__ 'fibo' thun tin, mt hm trong module nh s dng thng c ng k vi mt tn cc b: >>> fib = fibo.fib >>> fib(500) 1 1 2 3 5 8 13 21 34 55 89 144 233 377 Mt module c th cha cc cu lnh thc thi cng nh cc nh ngha hm. Cc cu lnh c dng khi to module . Chng c thc hin ch ln u tin module c nhp. 2. Cc module chun Python cung cp mt th vin cc module chun. Mt s module quan trng c ci sn vo trnh thng dch. C mt module c th ng ch l: sys, module ny c ci sn vo mi trnh thng dch Python. Cc bin sys.ps1 v sys.ps2 nh ngha cc xu c s dng nh du nhc s cp v th cp: >>> import sys >>> sys.ps1 '>>> ' >>> sys.ps2 '... ' >>> sys.ps1 = 'C> ' C> print 'Yuck!' Yuck! C> Hai bin trn ch c nh ngha nu trnh thng dch ch tng tc. Bin sys.path l mt danh sch cc xu m xc nh ng dn tm kim module ca trnh thng dch. N c khi to mt ng dn mc nh t bin mi trng PYTHONPATH, hoc t mt gi tr mc nh c ci sn nu

Lp 05CT2

GV Tiu ng Nhn

Trang 24 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

PYTHONPATH khng c thit lp. C th sa i n s dng thao tc danh sch chun: >>> import sys >>> sys.path.append('/ufs/guido/lib/python') Sau y l danh sch y cc module chun xy dng trong Python. Mt s module c km theo tn cc nn tng m module c s dng: __builtin__ distutils.emxccompiler ossaudiodev(Linux, __future__ distutils.errors FreeBSD) __main__ distutils.extension parser _winreg(Windows) distutils.fancy_getopt pdb aepack(Mac) distutils.file_util pickle aetools(Mac) distutils.filelist pickletools aetypes(Mac) distutils.log pipes(Unix) aifc distutils.msvccompiler PixMapWrapper(Mac) AL(IRIX) distutils.mwerkscompiler pkgutil al(IRIX) distutils.spawn platform anydbm distutils.sysconfig popen2(Unix, Windows) applesingle(Mac) distutils.text_file poplib array distutils.unixccompiler .. asynchat distutils.util

3. Th vin cc hm ton hc Danh sch cc module s v ton hc bao gm: math Cc hm ton hc (sin() v.v...). cmath Cc hm ton hc cho s phc. decimal Khai bo ca cc dng s hc thp phn tng qut Sinh ra cc s "gi" ngu nhin vi cc hm phn b xc sut thng random thng. itertools Cc hm sinh ra cc iterators s dng trong cc vng lp hiu qu Cc hm v thao tc c th tu tin cao hn trn cc i tng gi functools c operator Tt c cc ton t chun ca Python c ci t sn Module math cung cp cc truy cp ti cc hm th vin c bn ca C i vi cc php ton trn s thc >>> import math >>> math.cos(math.pi / 4.0) 0.70710678118654757Lp 05CT2 GV Tiu ng Nhn Trang 25 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

>>> math.log(1024, 2) 10.0 Module random cung cp mt cch thc to ra s la chn ngu nhin >>> import random >>> random.choice(['apple', 'pear', 'banana']) 'apple' >>> random.sample(xrange(100), 10) # sampling without replacement [30, 83, 16, 4, 8, 81, 41, 50, 18, 33] >>> random.random() # random float 0.17970987693706186 >>> random.randrange(6) # random integer chosen from range(6) 4 Sau y, ta s tm hiu v cc hm c xy dng trong 2 module math v cmath.

Lp 05CT2

GV Tiu ng Nhn

Trang 26 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

a. Cc hm ton hc trong module math: Modul ny lun sn dng. N cung cp phng thc truy nhp cc hm ton hc c nh ngha theo chun C. Module math cung cp cc hm di y. Tt c u tr v s thc ngoi tr mt s trng hp c bit. ceil(x) Hm tr v gi tr cn trn ca s thc x, tng ng vi gi tr nguyn nh nht ln hn x. fabs x) ( Gi tr tuyt i ca x. floor(x) Hm tr v gi tr cn di ca s thc x, tng ng vi gi tr nguyn ln nht nh hn x. . fmod(x, y) Tr v fmod(x,y), c nh ngha theo chun th vin C. Ch rng trong Python php ton x % y c th khng tr v cng mt kt qu tng t. Thc t trong chun th vin C th fmod(x,y) tr v chnh xc(php ton, chnh xc v hn) bng x-n*y vi 1 vi s nguyn n c cng kt qu vi du ca x v ln tr tuyt i ca y. Trong khi , i vi Python th php ton x % y tr v kt qu l bao gm c du ca y, v n ko thc tnh chnh xc cho cc i s thc.V d, fmod(-1e-100,1e100) l -1e-100, nhng kt qu ca -1e-100 % 1e100 l -1e-100,iu ny khng th a ra kt qu chnh xc i vi s thc, v lm trn 1e100. Chnh v nguyn nhn ny, hm fmod() thng c u tin khi lm vic vi s thc, vi x % y trong Python th c u tin vi s nguyn. frexp(x) Tr v phn nh tr v s m ca x di dng (m,e). m c gi tr thc cn e l s nguyn vi x == m*2**e. Nu x = 0, kt qu l (0.0,0), cn 0.5 =2**52 th tt nhin s khng c cc bt phn s. Cc hm m v logarit: exp(x) Tr v e**x log(x[, base]) Tr v logarit ca x vi c s a ra l base. Nu khng a c c base, th t ng tr v logarit t nhin ca x( logarit vi c s e). log10(x) Tr v logarit c s 10 ca x. pow x, y) ( Tr v x ** y sqrt(x) Tr v cn bc 2 ca x. Cc hm lng gic: acos(x) Tr v arc coosin ca x theo radian. asin(x) Tr v arc sin ca x theo radian atan(x) Tr v arc tang ca x theo radian atan2(y, x) Tr v atan(y/x) theo radian. Kt qu nm trong khong t -pi n pi. Vector trong mt phng t im gc ta ti im c ta (x,y) to mt gc vi trc ta X . im ca atan2() m du ca c hai u vo c bit n n, v vy n c th tnh ton chnh xc ca gc. V d, atan(1) v atan2(1,1) u bng pi/4 nhng atan2(-1,-1) li bng pi/4. cos(x) Tr v gi tr cosin ca x hypot(x, y) Tr v dng Oclit ca sqrt(x*x+y*y).y l di vc t t gc ta ti im c ta (x,y). sin(x) Tr v sin ca x theo radian tan(x) Tr v tang ca x theo radian. Hm chuyn i gc:Lp 05CT2 GV Tiu ng Nhn Trang 28 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

degrees(x) Chuyn gc x t radian sang . radians(x) Chuyn gc x t sang radian. Cc hm hypebon: cosh(x) Tr v hyperbolic cosin ca x. sinh(x) Tr v hyperbolic sin ca x. tanh(x) Tr v hyperbolic tang ca x. Cc hng s ton hc c nh ngha sn: pi e Spi = 3.14159265358979.

Se. b. Cc hm ton hc cho s phc trong module cmath: Module ny cung cp cch truy nhp vo cc hm ton hc cho s phc. Cc hm ny gm c: acos(x) Tr v arccos ca x. C 2 min c chn: 1 min ko di v pha phi t 1 lin tc ti . Min cn li ko di v pha tri t -1 lin tc ti -. acosh(x) Tr v hypedolic arccos ca x. Ch c mt min c ly ra, ko di v pha tri t 1 lin tc cho ti -. asin(x) Tr v arcsin ca x.C di gi tr cng ging nh arccos(). asinh(x) Tr v hyperbolic arcsin ca x. C 2 min gi tr c ly ra, ko di lin tc v bn tri t 1j ti -j. Nhng min ny cn tnh ton n cc li chnh xc hn. Min chnh xc c ly ra s m rng theo trc o, mt lin tc t 1j ti j t pha phi v mt lin tc t -1j ti -j t pha tri. atan(x) Tr v arc tang ca x. C 2 min c ly ra: Mt ko di lin tc t 1j theo trc so ti j t pha tri. Min khc ko di lin tc t -1j dc theo trc so ti j t pha tri.( iu ny s chc chn thay i v vi min cao hn s lin tc t nhiu pha khc). atanh(x)Lp 05CT2 GV Tiu ng Nhn Trang 29 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

Tr v hyperbolic arc tang ca x. C 2 min gi tr c ly ra: Mt ko di lin tc t 1 dc theo trc s thc ti . Min cn li ko di lin tc t -1 dc theo trc s thc ti -.( iu ny chc chn s b thay i v min phi ly ra tr nn lin tc t pha khc) cos(x) Tr v cosin ca x. cosh(x) Tr v hyperbolic cosin ca x. exp(x) Tr v gi tr m e**x. log(x[, base]) Tr v logarit ca x vi c s l base. Nu base ko c a ra, tr v gi tr logarit t nhin ca x. C mt min c ly ra, t 0 dc theo min m trc s thc ti -. c thay i trong phin bn 2.4 : i s base c thm vo. log10(x) Tr v logarit c s 10 ca x. C min tng t nh hm log() sin(x) Tr v sin ca x. sinh(x) Tr v hyperbolic sin ca x. sqrt(x) Tr v cn bc 2 ca x. Min c ly ra tng t nh hm log(). tan(x) Tr v tang ca x. tanh(x) Tr v hyperbolic tang ca x.

4. Truy cp internetC mt smodule truy cp internet v x l cc giao thc internet. Hai module n gin nht l urllib2 cho vic nhn d liu t url v smtplib cho gi mail: >>> import urllib2 >>> for line in urllib2.urlopen('http://tycho.usno.navy.mil/cgibin/timer.pl'): ... if 'EST' in line or 'EDT' in line: # look for Eastern Time ... print line

Lp 05CT2

GV Tiu ng Nhn

Trang 30 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

>>> import smtplib >>> server = smtplib.SMTP('localhost') >>> server.sendmail('[email protected]', '[email protected]', """To: [email protected] From: [email protected] Beware the Ides of March. """) >>> server.quit()

Lp 05CT2

GV Tiu ng Nhn

Trang 31 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

5. X l ngy v thi gian vi module datetime Module datetime cung cp cc lp thao vi ngy v thi gian cho c yu cu n gin v phc tp. Module ny cng h tr cc i tng nhn nh yu t thi gian. # dates are easily constructed and formatted >>> from datetime import date >>> now = date.today() >>> now datetime.date(2003, 12, 2) >>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.") '12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.' # dates support calendar arithmetic >>> birthday = date(1964, 7, 31) >>> age = now - birthday >>> age.days 14368

6. Nn d liuCc nh dng nn v lu tr d liu ph bin c h tr trc tip bi rt nhiu th tc, bao gm:zlib,gzip,bz2,zipfile v tarfile. V d: >>> import zlib >>> s = 'witch which has which witches wrist watch' >>> len(s) 41 >>> t = zlib.compress(s) >>> len(t) 37 >>> zlib.decompress(t) 'witch which has which witches wrist watch' >>> zlib.crc32(s) 226805979

Lp 05CT2

GV Tiu ng Nhn

Trang 32 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

V.

Thao tc vo v ra

1. File Input Python c cc kiu file c ci sn. Cc file c th m bng cch s dng hm xy dng kiu file: f = file('test.txt', 'r') iu ny c ngha l file f c m c. i s u tin l tn file v i s th 2 l ch m file, bao gm, r, w hoc rw Cch ph bin nht c mt file l lp li tun t cho n ht file: f = open('test.txt', 'r') for line in f: print line[0] f.close() on m trn s in ra k t u tin ca mi dng trong file. Cng c th c vi s lng gii hn cc k t ti mt thi im, ging nh sau: c = f.read(1) while len(c) > 0: if len(c.strip()) > 0: print c, c = f.read(1) on m ny s lp li vic c mt s k t t file f, v in ra chng nu chng khng phi l k t khong trng Mt i tng file hon ton cha mt du hiu m t v tr hin thi ca con tr file. Con tr file s di chuyn t u file, c th dng phng thc seek dch chuyn con tr file, v d: f.seek(0)

Lp 05CT2

GV Tiu ng Nhn

Trang 33 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

2. Output Python s dng cch thc c bn nht xut d liu l dng cu lnh print. print 'Hello, world' in ra nhiu th trn cng mt dng, ta s dng du phy gia chng, v d: print 'Hello,', 'World' s in ra nh sau: Hello, World Ch rng mc d xu khng cha khong trng, n cng c thm vo bi lnh print bi v du , gia 2 i tng. Cc kiu d liu ty c th c in theo cch ny: print 1,2,0xff,0777,(10+5j),-0.999,map,sys s in ra : 1 2 255 511 (10+5j) -0.999

Cc i tng c th in trn cng mt dng khng cn vit trn mt dng m ch cn t mt du , cui ca lnh print for i in range(10): print i, s in ra: 0 1 2 3 4 5 6 7 8 9 kt thc mt dng, cn thm vo mt lnh print m khng c i tng no, v d: for i in range(10): print i, print for i in range(10,20): print i, s in ra: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Nu khng c cu lnh print trng th n s in ra trn cng mt dng 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Nu khng mun in mt dng mi hoc mt khong trng ( khi s dng du , cui), ta c th lm mt iu khin ngn vi sys.stdout.write v s dng xut ra: import sysLp 05CT2 GV Tiu ng Nhn Trang 34 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

write = sys.stdout.write write('20') write('05\n') s in ra: 2005 Nhng c php nh trn c th s dng khi vit vo file thay v n thit b ra chun, v d: print >> f, 'Hello, world' Ci ny s c in trong bt k i tng no m thi hnh hm write() trong c i tng file.

VI.

Lp trnh giao din:

C kh nhiu cc b lp trnh giao din vi Python. Sau y ta s tm hiu tng quan v chng. 1. Tkinter: y l mt cng c lp trnh giao din Python cho Tcl/Tk, c a vo Python (chy trn nn Win32 mc d n c th c ci trn Unix/Linux hoc Mac) v cung cp mt giao din ngi s dng. Khng phi l n gin hc cch s dng b cng c mnh ny, n cung cp nhng th xut hin nh l mt tp hp cc ca s. Tuy nhin, bi v cc ca s Tkinter c th m rng, nhiu ca s c to ra kh d dng. Tkinter c thit k nh l mt giao din ngi s dng do yu cu thc t cho Python. to ra mt mt khung ca s n gin trong Tkinter ch cn lm nh on code sau: import Tkinter root = Tkinter.Tk() root.mainloop() gfd From an object-oriented perspective one can do the following: import Tkinter class App: def __init__(self, master): button = Tkinter.Button(master, text="I'm a Button.") button.pack() if __name__ == '__main__': root = Tkinter.Tk() app = App(root) root.mainloop()Lp 05CT2 GV Tiu ng Nhn Trang 35 / 55

Trng i Hc Lc Hng Khoa Cng Ngh Thng Tin

Cc site cung cp thng tin v Tkinter http://www.astro.washington.edu/owen/TkinterSummary.ht ml