15. óra: Az eddig tanultak összefoglalása
Összefoglaljuk azt a pár Python utasítást, kulcsszót, amit eddig tanultunk. A programozási feladatokat ezekbõl - mint LEGO-darabokból egy kisgyerek - kell felépítnünk.
Legóból sok minden építhetõ
Nézzük, milyen kulcsszavakat/utasításokat tanultunk!
- Egyszerû kimenet/bemenet
- print(): írás a konzolra
- input(): olvasás a konzolról
- Vezérlési szerkezetek
- if ... else: elágazás
- while: feltételes ciklus
- for: számláló ciklus
- Fájlkezelés
- Fájl megnyitása, bezásárása
- Írás fájlba
- Egyéb
- Maradékos osztás
- Egész osztás
- A sorvége jel
Mindegyik kulcsszóhoz készült egy kis mintaprogram, amit egy lenyíló dobozban lehet megnézni.
Ha nem világos, mit csinál egy-egy példaprogram, töltsék le, próbálják ki! Ezt-azt írjanak át benne, nézzék meg, mi változik...
Egyszerû kimenet/bemenet | vissza a tartalomjegyzékhez |
I. A print() parancs | vissza a tartalomjegyzékhez |
Feladata: A parancs mögötti zárójelbe tett kifejezéseket kiírja a konzolra.
Szintaxisa: print("Szöveg"+valtozo1+str(valtozó2)),
ahol...
... a "Szöveg" szabadon beírt bármi,
... a változó1 egy szöveget tartalmazó változó,
... a változó2 egy számot vagy listát tartalmazó változó, melyet az str
szöveggé (string) alakít.
Megjegyzés: A print() utasítás a kiírt szöveg után kéretlenül sort dob. Ha ezt nem akarjuk, felül kell írnunk a 'vége' jelet. Ennek szintaxisa: print(bármi, end=" "). (Most a végére csak egy space-t (üres helyet) tesz, sordobás nem lesz.
Mintaprogram: (megjelenik)
↓ (eltûnik)
↑
Ime a program (letölthetõ innen: kiir.py):
A futás eredménye:
II. Az input() parancs | vissza a tartalomjegyzékhez |
Feladata: A parancs mögötti zárójbe tett üzenetet kiírja a konzolra, majd a begépelt adatot szövegként beolvassa. (A beolvasás eredményének eltárolásáról nekünk kell gondoskodnunk.)
Szintaxisa: input("Üzenet"), ahol...
... az "Üzenet" egy tájékoztató szöveg arról, hogy mit várunk a
felhasználótól.
Megjegyzés: A input()
utasítás a beolvasott adatot mindig szöveg (string)
formátumban olvassa be.
Ha egész számként szeretné a beolvasást, akkor az input teljes
utasítását az int() operátorba
kell tennie.
Mintaprogram: (megjelenik)
↓ (eltûnik)
↑
A program (letölthetõ innen: beolvas.py):
A futás eredménye (sárgával kiemelve, amit a felhasználó ír be):
Hány éves? 20
Üdvözlöm Eszter, ön 20 éves.
Vezérlési szerkezetek | vissza a tartalomjegyzékhez |
III. Az if (else) utasítás(pár) | vissza a tartalomjegyzékhez |
Feladata: Elágazás létrehozása. Az if
alá rendelt utasítást/utasításokat csak akkor hajtja végre a program, ha
a mögé írt feltétel igaz. (És csak egyszer! - aztán vége.)
Az if után az else nem kötelezõ, de ha
van: az else alá rendelt
utasítás akkor aktiválódik, amikor az if
mögé írt feltétel hamis.
Szintaxisa: if
feltétel:
alárendelt utasítás(ok)
else:
alárendelt utasítás(ok)
Megjegyzés: Az if és az else
sora is kettõsponttal (:) végzõdik - ez jelzi, hogy alárendelt
utasítások következnek. Ha ilyenkor új sort kezdünk, a szövegszerkesztõ
automatikusan egy tabulátorral beljebb kezdi az új sort (amit
persze mi is kitehetünk, ha nem így jutottunk ide).
Mindaddig, amíg egy tabulátorral beljebb vagyunk, utasításaink az if v.
else alá vannak rendelve. Ha ezt már nem akarjuk, a tabulátort vissza
kell vegyük.
Mintaprogram: (megjelenik)
↓ (eltûnik)
↑
- ha az illetõ 20 évnél fiatalabb, akkor: "Szervusz XY!";
- egyébként a köszönés: "Jó napot XY!"
A program (letölthetõ innen: elagazas.py):
A futás eredménye (sárgával kiemelve, amit a felhasználó ír be):
Hány éves? 16
Szervusz Anna!
Hány éves? 46
Jó napot Lajos!
IV. A while utasítás | vissza a tartalomjegyzékhez |
Feladata: Feltételes ciklus elindítása. A while az alá rendelt utasítást/utasításokat újra és újra (ciklikusan) végrehajtja, amíg a while mögé írt feltétel igaz.
Szintaxisa: while
feltétel:
alárendelt utasítás(ok)
Megjegyzés: A while sora
kettõsponttal (:) végzõdik - ez jelzi, hogy alárendelt utasítások
következnek. Ha ilyenkor új sort kezdünk, a szövegszerkesztõ
automatikusan egy tabulátorral beljebb kezdi az új sort (amit
persze mi is kitehetünk, ha nem így jutottunk ide).
Mindaddig, amíg egy tabulátorral beljebb vagyunk, utasításaink a while
alá vannak rendelve. Ha ezt már nem akarjuk, a tabulátort vissza kell
vegyük.
Mintaprogram: (megjelenik)
↓ (eltûnik)
↑
A program (letölthetõ innen: szamlalas.py):
A futás eredménye (sárgával kiemelve, amit a felhasználó ír be):
1 2 3 4 5 6 7
V. A for... in... utasítás | vissza a tartalomjegyzékhez |
Feladata: Számláló (v. léptetõ) ciklus indítása. A for az alá rendelt utasítást/utasításokat újra és újra (ciklikusan) végrehajtja, amíg az in mögé írt felsorolás elemei el nem fogynak.
Szintaxisa: for
változó in felsorolás:
alárendelt utasítás(ok)
A felsorolás magyarázata: A 'felsorolás' lehet lista,
halmaz vagy range(a, b).
- A lista-t a for felsorolásként értelmezi, sorba veszi a lista elemeit
a 0.-tól az utolsóig.
- A halmaz-t a for felsorolásként veszi ugyan, de a halmazban az
elemeknek nincs sorrendje. Azok olyan rendben jönnek, ahogy a
Python 'gusztusa' szerint éppen vannak...
- A range(a, b)-t (ahol a, b pozitív egészek, a<b)
is felsorolásként értelmezi a for; veszi a pozitív egészeket a-tól
b - 1-ig. (Tehát b-t már nem!)
A változó magyarázata: A for az in mögött álló felsorolás elsõ elemét beteszi a változóba, lefuttatja a ciklus utasításait, majd beteszi a következõ elemet a változóba, megint lefuttatja az alárendelt utasításait, stb. Ha a felsorolás elemei elfogynak, a for ciklus leáll. (És következik a for után álló elsõ, neki nem alárendelt utasítás.)
Megjegyzés: A for teljes sora
kettõsponttal (:) végzõdik - ez jelzi, hogy alárendelt utasítások
következnek. Ha ilyenkor új sort kezdünk, a szövegszerkesztõ
automatikusan egy tabulátorral beljebb kezdi az új sort (amit
persze mi is kitehetünk, ha nem így jutottunk ide).
Mindaddig, amíg egy tabulátorral beljebb vagyunk, utasításaink a while
alá vannak rendelve. Ha ezt már nem akarjuk, a tabulátort vissza kell
vegyük.
Mintaprogram: (megjelenik)
↓ (eltûnik)
↑
A program (letölthetõ innen: szamlalas2.py):
A futás eredménye (sárgával kiemelve, amit a felhasználó ír be):
0 1 2 3 4 5 6
2. feladat: Helyezzünk el néhány nevet egy nevek nevû listába, majd irassuk ki egyesével a lista elemeit - mindegyiket új sorba!
A program (letölthetõ innen: listazas.py):
A futás eredménye:
Juli
Béla
Lajos