Existuje mnoho funkcií ktoré nám niečo vrátia. Napríklad funkcia round nám vráti zaokrúhlené číslo.
>>>round(10.545654, 1)
10.5
Doteraz naše funkcie nič nevracali, ale netreba sa báť, zápis je veľmi jednoduchý. Vytvoríme funkciu ktorá dokáže spočítať dve čísla:
def spocitaj(a, b):
c = a + b
return c # vráť hodnotu premennej c
x = spocitaj(10,15)
print(x)
Pri ukončení funkcie sa priradí hodnota do premennej x. Pozor, nakoľko sa funkcia ukončí, zruší sa jej menný priestor, to znamená že sa z neho vymažú všetky premenné a, b, c. Preto je potrebné návratovú hodnotu niekde priradiť, poprípade túto funkciu priamo zavolať vo funkcii print.
Ďalšia funkcia zisťuje dĺžku (počet znakov) zadaného reťazca. Využíva to, že for-cyklus vie prejsť všetky znaky reťazca a s každým môže niečo urobiť, napríklad zvýšiť počítadlo o 1:
def dlzka(retazec):
pocet = 0
for znak in retazec:
pocet += 1
return pocet
Doteraz nám funkcia vracala len čísla, ale návratová hodnota môže byť akýkoľvek dátový typ, napríklad bool:
def spravne_heslo(heslo):
if heslo == "mojetajneheslo":
return True
return False
Poprípade reťazec:
def meno(index):
""" Vráti reťazec meno podľa zadaného indexu od 1 po 3"""
if index == 1:
return "Peter"
elif index == 2:
return "Janko"
elif index == 3:
return "Jožko"
Náhradná hodnota parametra
Nastane prípad, kedy nebudeme potrebovať vypĺňať všetky parametre funkcie a chceme aby tam bola nejaký predvolená hodnota:
def vynasob(cislo, cislo_2 = 2):
return cislo * cislo_2
print(vynasob(2))
print(vynasob(2, 6)
Pokiaľ vo funkcii neuvedieme druhý parameter, prevezme sa hodnota ktorá je priradená v parametri „cislo_2“. Vyskúšajte.
Parametre volané menom
Ďalšou možnosťou ako správne zadefinovať parametre funkcie je volať parameter priamo menom.
def spoj_mena(meno1, meno2, meno3):
return meno1 + meno2 + meno3
print(spoj_mena(meno2 = "karol", meno3 = "janko", meno1 = "jožko"))
Zaujala ma ešte funkcia na zápis farieb do šestnástkovej sústavy:
def rgb(r, g, b):
return f'#{r:02x}{g:02x}{b:02x}'
>>>rgb(255, 255, 0)
'#ffff00'