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