You are on page 1of 6

Python a gpben

Programozsi tanknyv teljesen kezdknek,


ajnlott a kzpiskola els osztlytl

Kos Antal
Szveg, rajzok, programok Kos Antal, 2016
Hungarian edition Typotex, Budapest, 2016
Engedly nlkl semmilyen formban nem msolhat!

ISBN 978-963-279-884-4

Kedves Olvas!
Ksznjk, hogy knlatunkbl vlasztott olvasnivalt!
jabb kiadvnyainkrl, akciinkrl
a www.typotex.hu s a facebook.com/typotexkiado
oldalakon rteslhet.

Kiadja a Typotex Elektronikus Kiad Kft.


Felels vezet: Votisky Zsuzsa
Fszerkeszt: Horvth Balzs

A knyv teljes terjedelm PDF vltozata csatolmnyknt tartalmaz rajzokat s a trgyalt


programok forrskdjt. A csatolmnyt nem minden megjelent program tudja kifejteni, de
az ingyenes s nylt forrskd Evince igen. A knyv rsakor ez a megjelent Windowshoz
s Linuxhoz a kvetkez cmen volt elrhet: wiki.gnome.org/Apps/Evince/Downloads
(A Linux fbb terjesztsei az Evince-t eleve tartalmazzk.)
-3-

Tartalomjegyzk
1. Bevezets................................................................6 19. Modulok ksztse.........................................156
2. Mirt a Python 3-at tanuljuk meg?..................7 20. Sztrak............................................................160
3. Elkszletek.........................................................9 21. Kszletek..........................................................168
4. Egy Python program futtatsa.......................11 22. Fggvnyek II.................................................174
5. Alapozs interaktv mdban...........................14 23. Rekurzi ..........................................................183
6. Fggvnyek I.......................................................20 24. Bejrk s genertorok ...............................194
7. Vltozk s objektumok...................................26 25. Osztlyok ksztse.......................................197
8. A modulok hasznlata......................................32 26. Nhny tancs................................................215
9. SOS.........................................................................35 27. Fggelk...........................................................216
10. sszehasonltsok............................................36 F1. Terminolgia.............................................216
11. Elgazsok s ciklusok...................................44 F2. Az objektumok rajzos modellje............217
12. A vltozk lettere.........................................71 F3. Folyamatbrn a hazafel.py.................218
13. Szmok................................................................74 F4. Konfigurcis fjlok kezelse................219
14. Szmrendszerek s kdok..............................87 F5. Sierpinski-hromszg teknccel...........222
15. Karakterlncok.................................................92 F6. Utastsok, kifejezsek s az eval().......223
16. Listk................................................................113 F7. Mtrix..........................................................225
17. Sokasgok........................................................129 F8. Bitszint mveletek.................................226
18. Fjlok s kdok..............................................132 F9. A felhasznlt programok........................227

Kos Antal: Python a gpben


-4-

Nhny fontosabb fogalom fellelhetsge:

alapszint s teljes kr
16/114, 16/116, 17/129, 17/129, 20/162, 20/162, 22/177, 25/213
msols
bcbe rendezs 15/106 ASCII 14/88, 18/132
azonossg 5/19, 5/19, 13/82 bit, bjt 14/88, 14/89 behzs 5/15, 6/23
bjtszekvencia, bjttmb 18/138, 18/139 bool 5/19
dokumentcis jelentst mdost
15/110 15/92, 18/133
karakterlnc szekvencia
enumerate 11/56 exit 11/49 for 11/56, 18/143, 20/162, 21/173
feltteles rtkads: if-else 10/42 format 15/101 fggvnyhvs s * 22/182
if 11/44, 11/46 indexels 11/57, 16/113, 17/129, 20/162, 21/169 kszletpt 21/169
listt hasznl
16/121 iterci 23/183 komment # 6/24 lambda 22/179
karakterlnc-metdusok
konverzi (tpus) 7/28 ktsi erssg (opertor) 5/16, 9/35, 10/40, 10/43
lebegpontos szm 13/74 listapt 16/113, 16/122 metdus 7/27
logikai kifejezs 10/38 munkaknyvtr 18/133 nvtr 12/71, 22/174, 25/198
nonlocal 22/178 opertor 10/36, 13,74, 21/169 pass 25/197
pontossg 13/82 random 13/83
range 11/58, 13/78 referencia 7/30 sorozat 13/78
rendkvli esemny 5/15, 11/60 sorba rendezs 16/120, 17/129, 21/172
statikus metdus 15/106, 20/167, 25/202 szmrendszer 14/88
statikus vltoz 25/199
szeletels 15/94, 16/113, 17/129, 21/169 sztrpt 20/161
takarts (cleanup) 11/50, 11/62 tizedes trt 6/22, 13/82
tizedespont 5/14 try 11/60, 18/143 Unikd 14/89, 15/106, 18/137
utastssor megtrse / 10/40 UTF-8 14/89, 18/137 vltoz 5/16, 7/30
vezrl karakterek 14/89 while 11/50, 21/173 with open 18/144
verem 23/184 zip 17/130, 20/161

Kos Antal: Python a gpben


-5-

A programok listja
fggvny.py (Fggvnyek I.)................................23 listarend.py (Listk)..............................................122
fggvnyek2.py (Fggvnyek I.)..........................24 join_split.py (Listk)............................................124
fggvnyek3.py (Fggvnyek I.)..........................25 favgs.py (Listk)................................................126
modulok.py (A modulok hasznlata).................33 pparam.py (Listk)................................................127
modulok2.py (A modulok hasznlata)...............34 fizikusok.py (Listk).............................................128
bool.py (sszehasonltsok)..................................41 kptkrzs.py (Listk).........................................129
rtkads.py (sszehasonltsok)........................42 scifi.py (Sokasgok)...............................................133
Pitagorasz.py (sszehasonltsok).......................43 file.py (Fjlok s kdok)........................................145
if_plda.py (Elgazsok s ciklusok)...................46 pakol.py (Fjlok s kdok)...................................153
behzs.py (Elgazsok s ciklusok)...................46 sta.py (Fjlok s kdok)......................................154
es.py (Elgazsok s ciklusok)............................47 pywalk.py (Fjlok s kdok)................................156
es2.py (Elgazsok s ciklusok)..........................48 szemlycsere.py (Fjlok s kdok).....................157
hazafel.py (Elgazsok s ciklusok)...................49 pypath.py (Modulok ksztse)...........................158
while1.py (Elgazsok s ciklusok)......................52 bc.py (Modulok ksztse)..............................159
while2.py (Elgazsok s ciklusok)......................52 sztr.py (Sztrak)..............................................168
while3.py (Elgazsok s ciklusok)......................53 kalandor.py (Sztrak).........................................169
lelet.py (Elgazsok s ciklusok)..........................55 kszlet.py (Kszletek)...........................................175
brekeke.py (Elgazsok s ciklusok)...................56 fgv1.py (Fggvnyek II.).......................................177
conti.py (Elgazsok s ciklusok).........................56 fgv2.py (Fggvnyek II.).......................................177
for.py (Elgazsok s ciklusok).............................58 fgv3.py (Fggvnyek II.).......................................177
while_index.py (Elgazsok s ciklusok)...........59 argumentum1.py (Fggvnyek II.)....................178
range.py (Elgazsok s ciklusok)........................60 argumentum2.py (Fggvnyek II.)....................178
range_index.py (Elgazsok s ciklusok)...........60 argumentum3.py (Fggvnyek II.)....................179
try.py (Elgazsok s ciklusok).............................63 belsfgv.py (Fggvnyek II.)...............................180
try1.py (Elgazsok s ciklusok)...........................64 transformers.py (Fggvnyek II.)......................181
try2.py (Elgazsok s ciklusok)...........................65 rekurzi.py (Rekurzi )........................................185
try3.py (Elgazsok s ciklusok)...........................66 rekurzi_esemny.py (Rekurzi ).....................185
robotaut_feladat.py (Elgazsok s ciklusok).67 sumsum.py (Rekurzi )........................................187
kitalls.py (Elgazsok s ciklusok)..................70 sumi.py (Rekurzi )...............................................187
szakaszok.py (Elgazsok s ciklusok)...............71 sumsum_tkr.py (Rekurzi )............................189
nvtr.py (A vltozk lettere)............................73 szrazfld.py (Rekurzi ).....................................190
nvtr1.py (A vltozk lettere)..........................73 radar.py (Rekurzi )..............................................192
e_sorozat.py (Szmok)...........................................81 Hanoi.py (Rekurzi ).............................................195
vgtelen1.py (Szmok)...........................................82 els_osztly.py (Osztlyok ksztse)...............201
vgtelen2.py (Szmok)...........................................82 els_osztly1.py (Osztlyok ksztse).............202
fibo.py (Szmok)......................................................86 alga.py (Osztlyok ksztse)..............................204
zavaros.py (Karakterlncok).................................99 Sierpinski.py (Osztlyok ksztse)...................212
L-system.py (Karakterlncok)............................101 del_obj.py (Osztlyok ksztse)........................216
kdok.py (Karakterlncok).................................106 konfig1.py (Konfigurcis fjlok kezelse)......230
egyes_betrend.py (Karakterlncok)...............111 konfig2.py (Konfigurcis fjlok kezelse)......231
kdok2.py (Karakterlncok)...............................112 teknc.py (Sierpinski-hromszg teknccel).. .233
betkdok.py (Karakterlncok).........................113

Kos Antal: Python a gpben


-6-

1. Bevezets
Az ltalnos s a kzpiskolban a magyar nyelv s az irodalom oktatsa igen magas
raszmban trtnik. A tbbsgnk olyan szakmt vlaszt, amihez kzvetlenl ezek az ismeretek
nem szksgesek, csak kevesnkbl lesz r, jsgr, szerkeszt vagy magyar nyelvi tanr stb.
Kzvetve azonban mindenki hasznt veszi ezen ismereteknek, mert trsadalmunk mr igen
bonyolultt vlt: letnk sorn rengeteg emberrel szksges kialaktanunk hosszabb-rvidebb
idej kapcsolatot, a prpercestl az egsz leten t tartig, s a legvltozatosabb tmkban kell
informcit cserlnnk. A trsadalom akkor mkdik hatkonyan, ha a polgrok helyesen (a
tanult magyar nyelv segtsgvel) s pontosan (a tanult irodalom segtsgvel) tudjk magukat
kifejezni akr szban, akr rsban. Knnyebben clt r az, aki jl kommunikl, aki szabatosan
tudja kzlni a gondolatait, problmit.
A dolgok mai llsa szerint rengeteg szmtgpes rendszer vesz krl bennnket s gy
tnik ez egyre inkbb gy lesz. Gondoljunk csak az okostelefonokra, tabletekre, jegykiad
automatkra, navigcis eszkzkre stb.-re. Az apr vagy kevsb apr ktykn tlmenen,
hatalmas informatikai rendszerek mkdtetsre is szksg van ahhoz, hogy a trsadalom a
jelenlegi formjban fenn tudjon maradni. Ilyenek pldul a villamos-energiarendszer irnytsa,
a vasti- s lgi kzlekeds szervezse, az ruk elosztst vgz logisztikai rendszerek, a pnzgyi
elszmol rendszerek, a kzigazgatsi adatnyilvntarts, a tudomnyos adatbzisok stb. Lthatjuk,
hogy az emberek kzti kommunikci mellett egyre tbbszr van szksg az ember s valamely
szmtgpes rendszer kztti kommunikcira. Ez utbbihoz szerencsre nem kell programozsi
ismeret, a rendszerek kezelse ltalban valamilyen kpernys-grafikus felleten trtnik,
ugyanakkor a szban trtn vezrls mg nem elg megbzhat.
Az elmondottakbl kitnik, hogy a szmtgpes rendszerek teljesen tszvik az letnket, s
gy taln rdemes lehet az ezek alapjt kpez programok ksztsvel valamilyen szinten
megismerkedni. Amint az irodalom tantsnl sem az a cl, hogy mindenki r legyen, a
programkszts oktatsnl sem lehet az a kvetelmny, hogy mindenkibl hivatsos
programoz vljk. Az okos ktyk gombjait, ikonjait nyomkodva azonban nha nem rt tudni
vagy legalbb sejteni, hogy mi is trtnik a gpben. Ezen tlmenen egy n. magasabb szint
programozsi nyelv megtanulsa sokat segthet az iskolai-, ksbb pedig a munkahelyi
feladataink elvgzsben. Azt sem tartom kizrtnak, hogy a nem tvoli jvben, amellett hogy
grafikus felleten vagy szban irnytjuk a krnyezetnkben lv intelligens eszkzket s
robotokat, az gyesebbek kzlnk egy ilyesfle programozsi nyelven fognak tudni pontosabb,
kifinomultabb mkdtetst lehetv tev parancsokat kiadni.
E knyvben a Python 3 magas szint programozsi nyelvvel ismerkedhet meg a kedves
olvas, akirl felttelezzk, hogy az ltalnos iskolai tanulmnyokat mr befejezte. Nem
szksges semmilyen programozsi elismeret a knyv olvasshoz, de az asztali szmtgp
alapszint kezelsnek tudsa elvrs. Matematikbl sem tmasztunk magas kvetelmnyt az
olvasval szemben, br nhny fogalmat hasznlni fogunk a kzpiskola els vfolyamn
tanultakbl. A knyv fejezetei egymsra plnek, s ezrt azok sorban trtn olvassa az ajnlott,
de ha valamelyik elsre tl nehezen rthetnek bizonyulna, akkor inkbb csak fussuk t s egy
ksbbi idpontban trjnk vissza hozz, mintsem hogy abbahagyjuk a knyv olvasst.
Vannak fejezetek, amelyeket egy-kt ra alatt fel lehet dolgozni, de vannak olyanok is,
amelyekhez mg kt-hrom ht is kevs lehet. Nem kell sietni az olvasssal, aki lassan jr, tovbb
r. Tudjuk, hogy egy beszlt idegen nyelvet klnbz szinteken lehet elsajttani, de mg az
alapfok nyelvismeret is hasznosnak bizonyul, ha klfldre utazunk. A programozsnl is ez a
helyzet, egy alapszint programozsi tuds is sikerre vezethet, s egybknt is a gyakorlat teszi a
mestert.

Kos Antal: Python a gpben 1. Bevezets

You might also like