Produktív függvények
Már tudunk létrehozni és használni saját eljárásokat, függvényeket. Ezek az eljárások alprogramok voltak, amik valamilyen tevékenységet végeztek, de nem adtak semmilyen értéket eredményül. Az eredmény alatt nem azt értjük, hogy kiír, kirajzol valamit a program, hanem valamilyen kiszámolt információt. Használni már használtunk ilyen függvényt pl.: randrange(), randint(), ord(), int(), str()...
Amikor függvény segítségével rajzoltunk házat, akkor a haz(paraméter) paranccsal hívtuk ezt az eljárást. Ez végrehajtotta az utasításokat, és kirajzolt a vászonra a házat. Nem adott vissza semmilyen értéket, amivel tovább dolgozhatnánk. Viszont például a randrange()-nek van visszatérési értéke - egy véletlen szám -, amit hozzárendelhetünk egy változóhoz vagy használhatjuk egy másik függvény paramétereként.
A visszatérési érték meghatározására a return utasítás szolgál - ami befejezi a számítást és az aktuális érték lesz az eredmény.
Készítsünk függvényt, amely egy véletlen kis betűt ad vissza.

A függvényt használjuk a print utasításban, ami az eredményt kiírja a shell-be. A függvényt módosíthatjuk úgy, hogy az egész számítás közvetlenül a return-ban legyen. Így nem lesz szükség a szam és jel változókra. A függvényt most egy 10 véletlen jelből álló karakterlánc létrehozására használjuk, amit ki is íratunk.

Készíthetünk egy függvényt - randlanc(karakter_szam) -, ami a megadott hosszúságú véletlen karakterekből álló karakterláncot ad vissza.

A return utasítással véget ér a függvény ezért utána már felesleges további utasításokat írnunk, mivel azok úgyse lesznek végrehajtva. Csupán akkor van értelme további utasításokat is írni, ha a return-hoz csak bizonyos feltétel teljesülésekor ér el a program.

Ha a függvény paraméterének nem számot adunk meg, akkor a Python hibát jelez. Ezt a gondot kiküszöbölhetjük feltételekkel, amiknek teljesülniük kell, hogy végrehajtódjanak a további utasítások.

Előfordulhat, hogy egynél több eredménye lesz a függvényünknek, ilyenkor tuple-t használunk a kimenetre. Már tudjuk, hogy a tuple felírásához nem feltétlenül kellenek zárójelek, elég a vessző is: return ertek1, ertek2, ertek3, ...
Készítsünk függvényt, amely egy nevet szétbont vezeték- és keresztnévre!

A // és % műveletekkel megkapjuk egy szám számjegyeit anélkül, hogy a számot át kéne alakítani stringre.
