A Python vezérlési szerkezetei¶
Szelekciós vezérlés¶
Pythonban a szelekciós vezérlés megvalósítására az if, else és elif utasítások használatosak. Az elif a C-ből és Javából ismerős else if Pythonos megfelelője. A másik két utasítás ugyanazt a célt szolgálja, mint C-ben vagy Javában.
Használatuk szintaxisa (a szögletes zárójelek közötti részek elhagyhatók):
1 2 3 4 5 6 | |
Amint láthatjuk, a szelekciós vezérlési ágaknál is használjuk az imént megismert blokkszintaxist: egy adott vezérlési ághoz tartozó utasítássorozatot beljebb igazítunk.
A feltételek megadásakor használható fontosabb feltételes és logikai operátorok:
| Operátor | Működése |
|---|---|
a == b |
Igaz, ha a és b értéke megegyezik |
a != b |
Igaz, ha a és b értéke nem egyezik meg |
a < b |
Igaz, ha a kisebb, mint b |
a <= b |
Igaz, ha a kisebb vagy egyenlő, mint b |
a > b |
Igaz, ha a nagyobb, mint b |
a >= b |
Igaz, ha a nagyobb vagy egyenlő, mint b |
a and b |
Igaz, ha a és b értéke egyaránt igaz (logikai ÉS) |
a or b |
Igaz, ha legalább az egyik operandus értéke igaz (logikai VAGY) |
not a |
Igaz, ha a értéke hamis (logikai tagadás) |
Példa: Egy program, amely beolvas egy egész számot a standard inputról és kiírja, hogy az pozitív, nulla vagy negatív
1 2 3 4 5 6 7 8 9 | |
Példa: Logikai operátorok használata
1 2 3 4 | |
1 2 3 4 5 | |
1 2 3 4 | |
Ismétléses vezérlés (Ciklusok)¶
Pythonban a while és for utasításokat tudjuk használni ismétléses vezérlés megvalósításra. (Pythonban nincs beépített do... while szerkezet.)
A while utasítás¶
A while utasítás a klasszikus kezdőfeltételes ismétléses vezérlést valósítja meg. Szintaxisa:
1 2 | |
A már jól megszokott módon, a ciklusmag addig fut, amíg a vizsgált feltétel igaz.
Példa: Írassuk ki az egész számokat 1-től 10-ig, while utasítás segítségével!
1 2 3 4 5 | |
A C-ben tanult break, illetve continue utasítások Pythonban is használhatók.
break: megszakítja az aktuális ismétlést és a szerkezetet követő utasításra ugrikcontinue: megszakítja az aktuális ismétlést és a következő iterációra ugrik
Példa: A break és continue utasítások használata while ciklusban:
1 2 3 4 5 6 7 8 9 10 11 12 | |
Kimenet
1 Éljen a Python! 2 Éljen a Python! 4 Éljen a Python! 5 Éljen a Python!
A for utasítás¶
Pythonban a for ciklus a korábban tanultakkal ellentétben nem a klasszikus számlálásos ismétléses vezérlést valósítja meg. Pythonban ugyanis úgynevezett listaszerű for ciklus van, ami egy elemsorozat bejárására szolgál. Ekkor a ciklusváltozó rendre felveszi a bejárni kívánt elemsorozat összes értékét.
Nézzünk néhány példát a for utasítás használatára!
Szövegek bejárása¶
1 2 | |
Kimenet
a l m a
A fenti példában a bejárni kívánt elemsorozatunk egy szöveg ("alma"). A szöveg karakterekből áll, ezeken a karaktereken iterálunk végig. A betu névre hallgató ciklusváltozónk minden iterációban felveszi az aktuális karakter értékét, amit kiírunk a konzolra.
Listák bejárása¶
A for ciklus egy másik gyakori használata a listák bejárása. A listákról egy későbbi gyakorlaton tanulunk részletesebben, de tulajdonképpen tekinthetünk rájuk úgy, mint a tömbökre - ők is elemek sorozatát tárolják.
A lista elemeinek bejárása hasonlóképpen történik, mint a szövegek karaktereinek bejárása.
1 2 | |
Kimenet
12 23 34 45
Hagyományos for ciklus szimulálása¶
Felmerülhet bennünk a kérdés, hogy van-e lehetőségünk Pythonban a for ciklust a "hagyományos" módon, számlálásos ismétléses vezérlésre használnunk. A válasz igen.
Ahhoz, hogy a klasszikus módon tudjuk használni a for ciklust, először egy számokból álló elemsorozatot kell generálnunk, aminek az elemein végig fogunk iterálni.
A range(start, end, step) függvénnyel egyszerűen generálható ilyen számokból álló elemsorozat. Ez a függvény legyártja nekünk az egész számokat start-tól end-ig (az end már nincs benne az elemsorozatban), step lépésközzel.
A start, illetve step paraméterek elhagyhatók. Alapértelmezett módon 0-tól indulunk (start alapértéke), és 1-esével lépkedünk (step alapértéke).
A step értékeként negatív számot is megadhatunk, ekkor "visszafelé lépkedünk".
Példa: Az egész számok kiíratása 0-tól 10-ig (a 10 már nincs benne)
1 2 | |
Példa: Az egész számok kiíratása 2-től 10-ig (a 10 már nincs benne)
1 2 | |
Példa: Az egész számok kiíratása 1-től 100-ig, 3-as lépésközzel (a 100 már nincs benne)
1 2 | |
Példa: Az egész számok kiíratása 20-tól 10-ig ("visszafelé lépkedés", a 10 már nincs benne)
1 2 | |
break, continue¶
Természetesen a for ciklusban is használhatjuk a break és continue utasításokat.
Példa: Elkezdjük kiíratni az 1 és 100 közötti egész számokat, majd 42-nél kilépünk
1 2 3 4 5 6 | |
Példa: Kiíratjuk egy pizzafeltéteket tároló lista elemeit, viszont ha ananászt látunk, azt átugorjuk (ízlés kérdése... a jegyzet készítője nem szereti az ananászos pizzát)
1 2 3 4 5 6 | |