Top Banner
PyS60 PyS60 ...avagy Python a mobilon ...avagy Python a mobilon
50

avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz [email protected] 11 Alapvetőtudnivalók zA Java-hoz

Aug 11, 2019

Download

Documents

lydung
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

PyS60PyS60

...avagy Python a mobilon...avagy Python a mobilon

Page 2: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

1. rész: Python alapok

Page 3: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

ÁÁttekintttekintééssA nyelv tA nyelv töörtrtééneteneteAlapvetAlapvetőő tudnivaltudnivalóókkSzintaxisSzintaxisNNééhháány egyszerny egyszerűű ppééldalda

Page 4: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

ÁÁttekintttekintééssA nyelv tA nyelv töörtrtééneteneteAlapvetAlapvetőő tudnivaltudnivalóókkSzintaxisSzintaxisNNééhháány egyszerny egyszerűű ppééldalda

Page 5: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

A nyelv tA nyelv töörtrtééneteneteGuido van Rossum,Guido van Rossum,CWI (Centrum voor Wiskunde en CWI (Centrum voor Wiskunde en Informatica), Amszterdam, HollandiaInformatica), Amszterdam, Hollandia1989. december1989. december implementimplementáácicióó kezdetekezdete1990.1990. nem publikus kiadnem publikus kiadáások (CWI)sok (CWI)1991. febru1991. februáárr 0.9.0 (els0.9.0 (elsőő publikus verzipublikus verzióó))1994. janu1994. januáárr 1.0.01.0.02000. okt2000. októóberber 2.0.02.0.02008. december2008. december 3.0.03.0.02011. febru2011. februáárr 3.2 (legfrissebb)3.2 (legfrissebb)

Page 6: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

Az AlkotAz Alkotóó““Benevolent Dictator for LifeBenevolent Dictator for Life”” (BDFL)(BDFL)

Page 7: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

ImplementImplementáácicióókkCPythonCPythonJython (Java Virtual Machine)Jython (Java Virtual Machine)IronPython (.NET Common Language IronPython (.NET Common Language Runtime)Runtime)Pyjamas (Javascript)Pyjamas (Javascript)PyS60 (Symbian Series 60)PyS60 (Symbian Series 60)PythonCE (Windows CE)PythonCE (Windows CE)stb.stb.

Page 8: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

A nyelv elnevezA nyelv elnevezéésese

Page 9: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

ÁÁttekintttekintééssA nyelv tA nyelv töörtrtééneteneteAlapvetAlapvetőő tudnivaltudnivalóókkSzintaxisSzintaxisNNééhháány egyszerny egyszerűű ppééldalda

Page 10: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

A Python...A Python...ááltalltaláános cnos cééllúú,,magas szintmagas szintűű,,objektumorientobjektumorientáált,lt,ttööbbfbbfééle programozle programozáási paradigmsi paradigmáát t ttáámogatmogatóó,,platformfplatformfüüggetlenggetlen

...programoz...programozáási nyelv.si nyelv.

Page 11: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

AlapvetAlapvetőő tudnivaltudnivalóókkA JavaA Java--hoz hasonlhoz hasonlóóan kan kööztes kztes kóódot (bytekdot (bytekóódot) dot) futtat az interpreter.futtat az interpreter.A standard kA standard kóódkdköönyvtnyvtáár szr száámos megvalmos megvalóóssíított tott funkcifunkcióót tartalmaz (+ neten talt tartalmaz (+ neten taláálhatlhatóómegoldmegoldáások!).sok!).A nyelvet elA nyelvet előőszeretettel hasznszeretettel hasznááljljáák prototk prototíípus pus fejlesztfejlesztéésre (gyors, egyszersre (gyors, egyszerűű).).Python Software Foundation License (GNU Python Software Foundation License (GNU GPL kompatibilis, FSF GPL kompatibilis, FSF éés OSI s OSI ááltal elismert)ltal elismert)

Page 12: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

Modern, OO eszkModern, OO eszköözzöökkOsztOsztáályok, objektumoklyok, objektumokÖÖrrööklklőőddééssAutomatikus szemAutomatikus szeméétgytgyűűjtjtéés (garbage s (garbage collection)collection)Dinamikus tDinamikus tíípusmeghatpusmeghatáározrozáás (late s (late binding)binding)KivKivéételkezeltelkezelééssUnicode tUnicode táámogatmogatááss

Page 13: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

ÁÁttekintttekintééssA nyelv tA nyelv töörtrtééneteneteAlapvetAlapvetőő tudnivaltudnivalóókkSzintaxisSzintaxisNNééhháány egyszerny egyszerűű ppééldalda

Page 14: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

SzintaxisSzintaxis•• EltEltéérréés az eddig megszokott nyelvekts az eddig megszokott nyelvektőől:l:

nincs sznincs szüükskséég a vg a vááltozltozóók deklark deklaráálláássááraraa sorok va sorok vééggéén nincs pontosvesszn nincs pontosvesszőőa blokkok szerveza blokkok szervezéése behse behúúzzáásalapsalapúú(nincs kapcsosz(nincs kapcsoszáárróójel!)jel!)minden vminden vááltozltozóó egy adott objektumra mutategy adott objektumra mutatóóreferenciareferenciaéértrtéékadkadáás, params, paramééterteráátadtadáás nem mindig a s nem mindig a megszokott mmegszokott móódon mdon műűkköödik!dik!

Page 15: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

TokenekTokenekWhitespace karakterrel elvWhitespace karakterrel elváálasztvalasztvaFajtFajtáái: azonosi: azonosííttóó, kulcssz, kulcsszóó, oper, operáátor, tor, delimiter, literdelimiter, literáállAz azonosAz azonosííttóó kezdkezdőődhet betdhet betűűvel vagy vel vagy alulvonalulvonáással, szerepelhet benne szssal, szerepelhet benne száámjegy mjegy is, a kisis, a kis-- éés nagybets nagybetűűket ket megkmegküüllöönbnbööztetjztetjüükkLefoglalt kulcsszavak pl.: assert, exec, Lefoglalt kulcsszavak pl.: assert, exec, lambda, pass, raise, yieldlambda, pass, raise, yield

Page 16: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

TTíípusok pusok éés vs vááltozltozóókkTTíípusok: szpusok: száámok, stringek, nmok, stringek, n--esek (tuple), esek (tuple), listlistáák, szk, szóóttáárak (dictionary)rak (dictionary)Null Null éértrtéék neve: Nonek neve: NoneLogikai Logikai éértrtéékkkkéént minden tnt minden tíípus pus hasznhasznáálhatlhatóó(0, None, (0, None, üüres string, nulla elemres string, nulla eleműűgygyűűjtemjteméény => False)ny => False)ÉÉrtrtéékadkadáás: =s: =ÖÖsszehasonlsszehasonlííttáás: ==s: ==

Page 17: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

TTíípusok pusok éés vs vááltozltozóók (folytatk (folytatáás)s)VVááltozltozóó--objektum objektum öösszerendelsszerendeléés s megszmegszüüntetntetéése: delse: delGlobGlobáális lis éés loks lokáális vlis vááltozltozóókk(f(füüggvggvéényben felvett vnyben felvett vááltozltozóóalapalapéértelmezetten lokrtelmezetten lokáális!)lis!)

Page 18: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

SzSzáámokmokDecimDecimáálislisOktOktáális (bevezetlis (bevezetőő 0)0)HexadecimHexadecimáális (bevezetlis (bevezetőő 0x)0x)LebegLebegőőpontos (x.yez => x,y * 10pontos (x.yez => x,y * 10zz))String String →→ szszáám konverzim konverzióó::int('int('stringstring', ', szszáámrendszermrendszer))

Page 19: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

SzekvenciSzekvenciáákkstringekstringek

""szszöövegveg" vagy '" vagy 'szszööveg veg ''Unicode string: u"Unicode string: u"szszöövegveg""

nn--esek (vektor)esek (vektor)('a' , 'b' , 'c') vagy ak('a' , 'b' , 'c') vagy akáár ('a' , "szia" , 3)r ('a' , "szia" , 3)tuple('abc')tuple('abc')( )( )

Page 20: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

SzekvenciSzekvenciáákklistlistáákk

['a' , 'b' , 'c'] vagy ak['a' , 'b' , 'c'] vagy akáár ['a' , "szia" , 3]r ['a' , "szia" , 3]list('abc')list('abc')[ ][ ]rendezett szekvenciarendezett szekvencia

Page 21: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

A listA listáák fk füüggvggvéényeinyeiindex(e) index(e) –– 'e' els'e' elsőő elelőőfordulforduláássáának indexenak indexeappend(e) append(e) –– 'e' hozz'e' hozzááffűűzzéése a lista se a lista vvééggééhezhezinsert(i,e) insert(i,e) –– 'e' besz'e' beszúúrráása az isa az i--edik helyreedik helyreremove(e) remove(e) –– 'e' els'e' elsőő elelőőfordulforduláássáának nak ttöörlrléésesepop([i]) pop([i]) –– az iaz i--edik elemet kiveszi a edik elemet kiveszi a listlistáábbóól l éés visszaadja az s visszaadja az éértrtéékkééttstb.stb.

Page 22: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

ListListáák generk generáálláásasaA range fA range füüggvggvéény segny segíítstsééggéével tvel töörtrtéénik.nik.range(trange(tóól, ig, ll, ig, lééppééskskööz)z)PPééldldáák:k:

range(3)range(3) =>=> [0 , 1 , 2][0 , 1 , 2]range(1,3)range(1,3) =>=> [1 , 2][1 , 2]range(1,6,2)range(1,6,2) =>=> [1 , 3 , 5][1 , 3 , 5]

Page 23: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

SzSzóóttáárakrak"Kulcsokkal azonos"Kulcsokkal azonosíított elemek tott elemek rendezetlen halmaza."rendezetlen halmaza."{1: 'a' , 2: 'b' , 4: 'd'}{1: 'a' , 2: 'b' , 4: 'd'}FFüüggvggvéényei:nyei:

haskey(k)haskey(k)get(k), get(k,x)get(k), get(k,x)items(), keys(), values()items(), keys(), values()iteritems(), iterkeys(), itervalues()iteritems(), iterkeys(), itervalues()

Page 24: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

ElEláágazgazáássA blokkokat csak behA blokkokat csak behúúzzáással jelssal jelööljljüük, k, nincs znincs záárróójel!jel!PPéélda:lda:if szam>0:if szam>0:……

elif szam<0:elif szam<0:……

else:else:......

Page 25: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

CiklusokCiklusok"for" szerkezet"for" szerkezet

"foreach" jelleg"foreach" jellegűű szintaktikaszintaktika PPééldldáák:k:

for x in lista:for x in lista:print xprint x

for kulcs, ertek in szotar.items():for kulcs, ertek in szotar.items():print kulcs, ' print kulcs, ' -- ', ertek', ertek

A "klasszikus" for ciklus:A "klasszikus" for ciklus:for i in xrange(for i in xrange(ttóól, ig, ll, ig, lééppéésksköözz):):print i, ' , 'print i, ' , '

Page 26: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

Ciklusok (folytatCiklusok (folytatáás)s)"while" szerkezet"while" szerkezetA megszokott logika szerint mA megszokott logika szerint műűkköödik.dik.PPéélda:lda:i=0i=0while i<3:while i<3:print iprint ii=i+1i=i+1

Page 27: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

Fibonacci sorozatFibonacci sorozat

a, b = 0, 1a, b = 0, 1while b < 10:while b < 10:print bprint ba, b = b, a+ba, b = b, a+b

Page 28: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

FFüüggvggvéényeknyek"def" kulcssz"def" kulcsszóóEgy visszatEgy visszatéérréési si éértrtéék, de visszaadhat nk, de visszaadhat n--eseket is.eseket is.PPéélda:lda:def hello():def hello():

print "Hello World!"print "Hello World!"returnreturn

Page 29: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

Lambda fLambda füüggvggvéényeknyek"On the fly" f"On the fly" füüggvggvéények, aknyek, akáár nr néév nv néélklküül l is.is.Nincs "return"!!!Nincs "return"!!!Egyetlen kifejezEgyetlen kifejezéés lehet a ts lehet a töörzse.rzse.Mindig kell legyen visszatMindig kell legyen visszatéérréési si éértrtééke.ke.

Page 30: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

Lambda fLambda füüggvggvéények 2.nyek 2.PPééldldáák:k:lambda a, b: a+blambda a, b: a+b

negyzet = lambda x: x**2negyzet = lambda x: x**2print negyzet(8)print negyzet(8)

lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]print filter(lambda x: x % 3 == 0, lista)print filter(lambda x: x % 3 == 0, lista)

Page 31: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

Lambda fLambda füüggvggvéények 3.nyek 3.Egy Egy öösszetett psszetett péélda:lda:def make_incrementor(n):def make_incrementor(n):

return lambda x: x + nreturn lambda x: x + n

f = make_incrementor(2)f = make_incrementor(2)print f(10)print f(10)

Mi is tMi is töörtrtéénik itt?nik itt?Mit fog kiMit fog kiíírni a print frni a print füüggvggvéény?ny?

Page 32: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

OsztOsztáályoklyokclass class osztosztáálynlynéévv ((őősosztsosztáályoklyok):):

osztosztáálytlytöörzsrzsTTööbbszbbszöörröös s öörrööklklőőddéés van, interfs van, interféészek szek nincsenek!nincsenek!Az osztAz osztáály metly metóódusainak kdusainak kööteleztelezőőparamparaméétere a self (szerepe, mint a tere a self (szerepe, mint a thisthis).).SpeciSpeciáális metlis metóódus: a konstruktor.dus: a konstruktor.def __init__(self, def __init__(self, ttööbbi_parambbi_paramééterekterek):):

......

Page 33: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

OsztOsztáályok attriblyok attribúútumaitumaiAttribAttribúútumot adhatunk az oszttumot adhatunk az osztáályhoz lyhoz éés s kköözvetlenzvetlenüül az egyes objektum l az egyes objektum ppééldldáányokhoz is.nyokhoz is.Ha egy osztHa egy osztáály adott attribly adott attribúútumtumáát t megvmegvááltoztatjuk, az hatltoztatjuk, az hatáással lesz az ssal lesz az öösszes olyan psszes olyan pééldldáány adott attribny adott attribúútumtumáára, ra, ahol azt mahol azt méég nem vg nem vááltoztattuk meg ltoztattuk meg ppééldldáány szinten.ny szinten.

Page 34: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

KivKivéételkezeltelkezelééssLogikLogikáája a megszokott.ja a megszokott.Nem kNem kööteleztelezőő megadni a kivmegadni a kivéétel ttel tíípuspusáát.t.OpcionOpcionáálisan klisan köövetkezhet egy "else" vetkezhet egy "else" éés s egy "finally" egy "finally" áág is.g is.PPéélda:lda:try:try:1/01/0

except ZeroDivisionError:except ZeroDivisionError:print "Nullprint "Nulláával nem osztunk!"val nem osztunk!"

Page 35: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

EgyebekEgyebekMegjegyzMegjegyzéések: #sek: #(a sor v(a sor vééggééig ig éérvrvéényes)nyes)TTööbb soros utasbb soros utasííttáásoksok

Sor vSor vééggéén 'n '\\' (backslash)' (backslash)Ha nem zHa nem záártuk be a nyitott zrtuk be a nyitott záárróójelet, a jelet, a kköövetkezvetkezőő sort automatikusan folytatsort automatikusan folytatóósornak veszi.sornak veszi.

Page 36: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

ÁÁttekintttekintééssA nyelv tA nyelv töörtrtééneteneteAlapvetAlapvetőő tudnivaltudnivalóókkSzintaxisSzintaxisNNééhháány egyszerny egyszerűű ppééldalda

Page 37: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

Hello World!Hello World!

print "Hello World!"print "Hello World!"

Page 38: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

For ciklusFor ciklus

szotar = {1:"egyik", 2:"masik", 3:"harmadik"}szotar = {1:"egyik", 2:"masik", 3:"harmadik"}for kulcs, ertek in szotar.items():for kulcs, ertek in szotar.items():

print kulcs, "print kulcs, "--", ertek", ertek

for szam in xrange(1,21):for szam in xrange(1,21):print szam,print szam,

Page 39: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

While ciklus, kivWhile ciklus, kivéételektelektry:try:

while i<10:while i<10:print i,print i,i=i+2i=i+2

except:except:print "Hiba!"print "Hiba!"

Page 40: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

While ciklus, kivWhile ciklus, kivéételektelektry:try:

i=0i=0while i<10:while i<10:print i,print i,i=i+2i=i+2

except:except:print "Hiba!"print "Hiba!"

Page 41: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

Lista szLista szűűrréése, lambda se, lambda ffüüggvggvéényeknyek

lista = range(1,21)lista = range(1,21)print filter(lambda x: x % 4 == 0, lista)print filter(lambda x: x % 4 == 0, lista)

Page 42: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

Lambda fLambda füüggvggvéényny

def make_increment(n):def make_increment(n):return lambda x: x+nreturn lambda x: x+n

f = make_increment(5)f = make_increment(5)g= make_increment(3)g= make_increment(3)print f(10)print f(10)print g(10)print g(10)

Page 43: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

FeladatFeladatKKéészszíítstsüünk oszthatnk oszthatóóssáágot vizsggot vizsgáállóó

ffüüggvggvéényt.nyt.GenerGenerááljunk egy 1ljunk egy 1--ttőől 50l 50--ig terjedig terjedőőszszáámlistmlistáát, szt, szűűrjrjüük ki az elkk ki az elkéészszíített tett

ffüüggvggvéény segny segíítstsééggéével a hvel a háárommal / rommal / nnééggyel / ggyel / ööttel / httel / hééttel / kilenccel oszthatttel / kilenccel oszthatóó

szszáámokat.mokat.

Page 44: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

MegoldMegoldáássdef oszthatosag(mivel):def oszthatosag(mivel):

return lambda n: n % mivel ==0return lambda n: n % mivel ==0lista = range(1,51)lista = range(1,51)print "3print "3--mal:", filter(oszthatosag(3),lista)mal:", filter(oszthatosag(3),lista)print "4print "4--gyel:", filter(oszthatosag(4),lista)gyel:", filter(oszthatosag(4),lista)print "5print "5--tel:", filter(oszthatosag(5),lista)tel:", filter(oszthatosag(5),lista)print "7print "7--tel:", filter(oszthatosag(7),lista)tel:", filter(oszthatosag(7),lista)print "9print "9--cel:", filter(oszthatosag(9),lista)cel:", filter(oszthatosag(9),lista)

Page 45: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

Minimalista megoldMinimalista megoldááss

def oszthatosag(mivel):def oszthatosag(mivel):return lambda n: n % mivel ==0return lambda n: n % mivel ==0

for i in [3,4,5,7,9]:for i in [3,4,5,7,9]:print i,":", print i,":", filter(oszthatosag(i),range(1,51))filter(oszthatosag(i),range(1,51))

Page 46: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

AbszolAbszolúút minimalista megoldt minimalista megoldááss

for i in [3,4,5,7,9]:for i in [3,4,5,7,9]:print i,":", filter(print i,":", filter(lambda n: n % i ==0lambda n: n % i ==0, range(1,51)), range(1,51))

2010/11. tavasz [email protected]

Page 47: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

Feladat2Feladat2

GenerGeneráálj 20 db vlj 20 db vééletlenszletlenszáámot 0 mot 0 éés 10 s 10 kköözzöött! tt! ÍÍrd ki, melyik szrd ki, melyik száámbmbóól hl háány darab ny darab van a listvan a listáában!ban!

# v# vééletlenszletlenszáám generm generáálláás: random moduls: random modul

2010/11. tavasz [email protected]

Page 48: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

MegoldMegoldááss

import randomimport randomlista=[]lista=[]for i in xrange(20):for i in xrange(20):

lista.append(random.randint(0,10))lista.append(random.randint(0,10))print listaprint listafor i in xrange(10):for i in xrange(10):

print i,print i,””: : ””, lista.count(i), lista.count(i)# vagy: print i,# vagy: print i,””: : ””, len(filter(lambda x: x==i, lista)), len(filter(lambda x: x==i, lista))

2010/11. tavasz [email protected]

Page 49: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

TovTováábbi anyagokbbi anyagokhttp://www.python.org/http://www.python.org/http://opensource.nokia.com/projects/pythttp://opensource.nokia.com/projects/pythonfors60honfors60http://mobilenin.com/pys60/menu.htmhttp://mobilenin.com/pys60/menu.htmhttp://www.forum.nokia.com/Tools_Docs_http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Runtimes/Python_for_S6and_Code/Tools/Runtimes/Python_for_S60/0/

Page 50: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1_ny.pdf2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 11 Alapvetőtudnivalók zA Java-hoz

2010/11. tavasz [email protected]

TovTováábbi anyagokbbi anyagokKKöönyvek:nyvek:

Mark Pilgrim: Mark Pilgrim: Dive Into PythonDive Into PythonForstnerForstner--EklerEkler--KelKeléényi: nyi: BevezetBevezetéés a mobilprogramozs a mobilprogramozáásbasba