Fájlok írása Pytonban!
Elkészült a Python nyelv Szövegfájlok írása tananyagunk! Jó tanulást, jó gyakorlást!

<info9>

Függvények és a return kulcsszó

Az előző fejezetben áttekintettük, hogy hogyan készíthetünk újrahasznosítható kódrészleteket eljárások formájában. Előfordulhat azonban, hogy egy olyan kódrészletet szeretnénk "újrahasznosítani", ami a munkája során valamilyen információt kiszámol, meghatároz, stb.

Képzeljük el akár a korábban már megismert input utasítást. Az input nem csak bekér egy adatot a felhasználótól, hanem utána ezt az adatot elérhetővé is teszi számunkra, hogy lehetőségünk legyen azt eltárolni, vagy felhasználni valamilyen módon. Az olyan utasításokat, amiknek van visszatérési értékük, azaz van olyan 'eredményük', amit utána fel tudunk használni, függvényeknek nevezzük.

A függvényeket is a def kulcsszó segítségével hozhatjuk létre, mindössze annyiban mások az eljárásoktól, hogy a return kulcsszó használatával visszaadnak egy értéket. Építve az előző fejezet példájára, készíthetünk például egy olyan függvényt, amely meghatározza egy tégalalp területét - de szemben az előző feladatban látott példával, nem írja ki azt a konzolra, csak kiszámítja, hogy utána felhasználhassuk bármire.

def terulet(a, b):
    return a*b

A függvény értékét utána letárolhatjuk, vagy akár közvetlen a print-ben, vagy további számításokban is felhasználhatjuk:

nappali = terulet(10, 8)
print("Konyha területe:", terulet(3, 4))
terfogat = terulet(5,4) * 2.5

Hogyan működik a return?

Mint láthattuk, a függvény "eredményét" a return kulcsszó használatával tudjuk meghatározni. Fontos azonban, hogy amint a programunk eljutott egy return utasításig az adott függvényben, úgy az ott megadott értéket azonnal visszaadja, és a függvény véget ér -- akkor is, ha egyébként lenne még további utasítás a függvényben. Tekintsük például az alábbi függvényt:

def paros(szam):
    if szam%2 == 0:
        return True
    return False

Ez a függvény kiválóan működik annak eldöntésére, hogy egy adott szám páros-e, vagy sem. Természetesen használhatnánk a korábban megtanult if ... else szerketetet is ennek a függvénynek a megvalósításához (vagy akár a ternary operátort), azonban az else valójában elhagyható - hiszen ha az if feltétele teljesül, a program eléri a return True sort, és a függvény máris visszatér a True értékkel - a függvény ezt követő része így már nem fog lefutni. A return False sort tehát csak akkor érhetjük el, ha az if feltétele nem teljesült.

Egy függvényen belül tehát bárhány return használható, azonban amint az elsőt elérjük, a kód visszatér az ott meghatározott értékkel, és a függvény maradéka már nem fut le.

def paros(szam): if szam%2 == 0: return True return False print("A 4-es szám páros?") print(paros(4)) print("Az 5-ös szám páros?") print(paros(5)) [ { "steps": [3], "variables": [ ], "hint": "Kiírjuk a feliratot a konzolra.", "console" : "A 4-es szám páros?"}, { "steps": [5], "variables": [ ], "hint": "A program lefuttatja a paros függvényt a 4-es számra.", "console" : "A 4-es szám páros?"}, { "steps": [0], "variables": [{"name": "szam", "value": "4"}, {"name": "szam % 2", "value": "0"}], "hint": "Megvizsgáljuk, hogy a 4 osztási maradéka 2-vel 0-e. Mivel a feltétel teljesül, ugrunk az if belsejébe.", "console" : "A 4-es szám páros?"}, { "steps": [1], "variables": [{"name": "szam", "value": "4"}], "hint": "A függvény eléri a return kulcsszót, és visszaadja a True logikai értéket.", "console" : "A 4-es szám páros?"}, { "steps": [4], "variables": [{"name": "paros(4)", "value": "True"}], "hint": "Mivel a függvény eredménye True volt, ezt írjuk ki a konzolra.", "console" : "A 4-es szám páros?\nTrue"}, { "steps": [6], "variables": [ ], "hint": "Kiírjuk a feliratot a konzolra.", "console" : "A 4-es szám páros?\nTrue\nAz 5-ös szám páros?"}, { "steps": [8], "variables": [ ], "hint": "A program lefuttatja a paros függvényt a 5-ös számra.", "console" : "A 4-es szám páros?\nTrue\nAz 5-ös szám páros?"}, { "steps": [0], "variables": [{"name": "szam", "value": "6"}, {"name": "szam % 2", "value": "1"}], "hint": "Megvizsgáljuk, hogy az 5 osztási maradéka 2-vel 0-e. Mivel a feltétel nem teljesül, lépünk az if utánra.", "console" : "A 4-es szám páros?\nTrue\nAz 5-ös szám páros?"}, { "steps": [2], "variables": [{"name": "szam", "value": "6"}], "hint": "A függvény eléri az if utáni return kulcsszót, és visszaadja a False logikai értéket.", "console" : "A 4-es szám páros?\nTrue\nAz 5-ös szám páros?"}, { "steps": [7], "variables": [{"name": "paros(5)", "value": "False"}], "hint": "Mivel a függvény eredménye False volt, ezt írjuk ki a konzolra.", "console" : "A 4-es szám páros?\nTrue", "console" : "A 4-es szám páros?\nTrue\nAz 5-ös szám páros?\nFalse"} ]

Annak érdekében, hogy a komplexebb programok áttekinthetőek legyenek, érdemes a különféle funkciókat külön-külön eljárásokba és függvényekbe rendezni. Így a kód átlátható, és könnyen gondozható marad.