50
PyS60 PyS60 ...avagy Python a mobilon ...avagy Python a mobilon

avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz [email protected] 3 ÁÁttekintttekintééss z

Embed Size (px)

Citation preview

Page 1: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

ÁÁttekintttekintééss

A nyelv tA nyelv töörtrtéénetenete

AlapvetAlapvetőő tudnivaltudnivalóókk

SzintaxisSzintaxis

NNééhháány egyszerny egyszerűű ppééldalda

Page 4: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

ÁÁttekintttekintééss

A nyelv tA nyelv töörtrtéénetenete

AlapvetAlapvetőő tudnivaltudnivalóókk

SzintaxisSzintaxis

NNééhháány egyszerny egyszerűű ppééldalda

Page 5: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

A nyelv tA nyelv töörtrtéénetenete

Guido van Rossum,Guido van Rossum,CWI (Centrum voor Wiskunde en Informatica), CWI (Centrum voor Wiskunde en Informatica), Amszterdam, HollandiaAmszterdam, 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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

ImplementImplementáácicióókk

CPythonCPython

Jython (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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

ÁÁttekintttekintééss

A nyelv tA nyelv töörtrtéénetenete

AlapvetAlapvetőő tudnivaltudnivalóókk

SzintaxisSzintaxis

NNééhháány egyszerny egyszerűű ppééldalda

Page 10: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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 tt táá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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

AlapvetAlapvetőő tudnivaltudnivalóókk

A 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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

Modern, OO eszkModern, OO eszköözzöökk

OsztOsztáályok, objektumoklyok, objektumok

ÖÖrrööklklőőddééss

Automatikus szemAutomatikus szeméétgytgyűűjtjtéés (garbage s (garbage collection)collection)

Dinamikus tDinamikus tíípusmeghatpusmeghatáározrozáás (late binding)s (late binding)

KivKivéételkezeltelkezelééss

Unicode tUnicode táámogatmogatááss

Page 13: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

ÁÁttekintttekintééss

A nyelv tA nyelv töörtrtéénetenete

AlapvetAlapvetőő tudnivaltudnivalóókk

SzintaxisSzintaxis

NNééhháány egyszerny egyszerűű ppééldalda

Page 14: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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áárara

a 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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

TokenekTokenek

Whitespace karakterrel elvWhitespace karakterrel elváálasztvalasztva

FajtFajtáái: azonosi: azonosííttóó, kulcssz, kulcsszóó, oper, operáátor, delimiter, tor, delimiter, literliterááll

Az azonosAz azonosííttóó kezdkezdőődhet betdhet betűűvel vagy vel vagy alulvonalulvonáással, szerepelhet benne szssal, szerepelhet benne száámjegy is, a mjegy is, a kiskis-- éés nagybets nagybetűűket megkket megküüllöönbnbööztetjztetjüükk

Lefoglalt kulcsszavak pl.: assert, exec, lambda, Lefoglalt kulcsszavak pl.: assert, exec, lambda, pass, raise, yieldpass, raise, yield

Page 16: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

TTíípusok pusok éés vs vááltozltozóókk

TTíí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: None

Logikai Logikai éértrtéékkkkéént minden tnt minden tíípus hasznpus hasznáálhatlhatóó(0, None, (0, None, üüres string, nulla elemres string, nulla eleműű gygyűűjtemjteméény ny => False)=> 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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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: del

GlobGlobáális lis éés loks lokáális vlis vááltozltozóókk(f(füüggvggvéényben felvett vnyben felvett vááltozltozóó alapalapéértelmezetten rtelmezetten loklokáális!)lis!)

Page 18: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

SzSzáámokmok

DecimDecimáálislis

OktOktáá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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

SzekvenciSzekvenciáákk

stringekstringek""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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

SzekvenciSzekvenciáákk

listlistáá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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

A listA listáák fk füüggvggvéényeinyei

index(e) index(e) –– 'e' els'e' elsőő elelőőfordulforduláássáának indexenak indexe

append(e) append(e) –– 'e' hozz'e' hozzááffűűzzéése a lista vse a lista vééggééhezhez

insert(i,e) insert(i,e) –– 'e' besz'e' beszúúrráása az isa az i--edik helyreedik helyre

remove(e) remove(e) –– 'e' els'e' elsőő elelőőfordulforduláássáának tnak töörlrléésese

pop([i]) pop([i]) –– az iaz i--edik elemet kiveszi a listedik elemet kiveszi a listáábbóól l éés s visszaadja az visszaadja az éértrtéékkéétt

stb.stb.

Page 22: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

ListListáák generk generáálláásasa

A 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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

SzSzóóttáárakrak

"Kulcsokkal azonos"Kulcsokkal azonosíított elemek rendezetlen tott elemek rendezetlen halmaza."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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

ElEláágazgazááss

A blokkokat csak behA blokkokat csak behúúzzáással jelssal jelööljljüük, nincs k, nincs zzáá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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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 xfor 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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

Ciklusok (folytatCiklusok (folytatáás)s)

"while" szerkezet"while" szerkezet

A 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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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 eseket is.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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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 is.l 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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

OsztOsztáályoklyok

class class osztosztáálynlynéévv ((őősosztsosztáályoklyok):):osztosztáálytlytöörzsrzs

TTöö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 tere a self (szerepe, mint 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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

OsztOsztáályok attriblyok attribúútumaitumai

AttribAttribúútumot adhatunk az oszttumot adhatunk az osztáályhoz lyhoz éés s kköözvetlenzvetlenüül az egyes objektum pl az egyes objektum pééldldáányokhoz nyokhoz is.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 sszes olyan polyan pééldldáány adott attribny adott attribúútumtumáára, ahol azt ra, ahol azt mméég nem vg nem vááltoztattuk meg pltoztattuk meg pééldldáány szinten.ny szinten.

Page 34: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

KivKivéételkezeltelkezelééss

LogikLogikáá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 egy s egy "finally" "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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

EgyebekEgyebek

MegjegyzMegjegyzéések: #sek: #(a sor v(a sor vééggééig ig éérvrvéényes)nyes)

TTööbb soros utasbb soros utasííttáásoksokSor vSor vééggéén 'n '\\' (backslash)' (backslash)

Ha nem zHa nem záártuk be a nyitott zrtuk be a nyitott záárróójelet, a kjelet, a köö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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

ÁÁttekintttekintééss

A nyelv tA nyelv töörtrtéénetenete

AlapvetAlapvetőő tudnivaltudnivalóókk

SzintaxisSzintaxis

NNééhháány egyszerny egyszerűű ppééldalda

Page 37: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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

i=0i=0

while 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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

FeladatFeladat

KKéé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, t, szszűűrjrjüük ki az elkk ki az elkéészszíített ftett füüggvggvéény segny segíítstsééggéével a vel a hháárommal / nrommal / nééggyel / ggyel / ööttel / httel / hééttel / kilenccel ttel / kilenccel

oszthatoszthatóó szszáámokat.mokat.

Page 44: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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

return lambda n: n % mivel ==0return lambda n: n % mivel ==0

lista = 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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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,":", filter(oszthatosag(i),range(1,51))print i,":", filter(oszthatosag(i),range(1,51))

Page 46: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

Feladat2Feladat2

GenerGeneráálj 20 db vlj 20 db vééletlenszletlenszáámot 0 mot 0 éés 10 ks 10 köözzöött! tt! ÍÍrd rd ki, melyik szki, melyik száámbmbóól hl háány darab van a listny darab van 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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

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.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

TovTováábbi anyagokbbi anyagok

http://www.python.org/http://www.python.org/

http://opensource.nokia.com/projects/pythonhttp://opensource.nokia.com/projects/pythonfors60fors60

http://mobilenin.com/pys60/menu.htmhttp://mobilenin.com/pys60/menu.htm

http://www.forum.nokia.com/Tools_Docs_anhttp://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Runtimes/Python_for_S60/d_Code/Tools/Runtimes/Python_for_S60/

Page 50: avagy Python a mobilon - users.nik.uni-obuda.huusers.nik.uni-obuda.hu/nagygabi/anyagok/python1.pdf · 2010/11. tavasz nagy.gabriella@nik.uni-obuda.hu 3 ÁÁttekintttekintééss z

2010/11. tavasz [email protected]

TovTováábbi anyagokbbi anyagok

KKöönyvek:nyvek:Mark Pilgrim: Mark Pilgrim: Dive Into PythonDive Into Python

ForstnerForstner--EklerEkler--KelKeléényi: nyi: BevezetBevezetéés a mobilprogramozs a mobilprogramozáásbasba