Příkaz return ukončí funkci
return dělá dvě věci najednou: vrátí hodnotu a hned ukončí funkci. Zbytek funkce se už neprovede:
def secti(a, b):
return a + b
print("Tento řádek se nikdy neprovede.")
print(secti(2, 3))Tento kód vypíše:
5Řádek za return se nikdy neprovede, protože funkce skončila už o řádek dřív.
To se hodí hlavně v kombinaci s podmínkami. Následující funkce popíše počasí podle teploty:
def popis_pocasi(stupne):
if stupne < 0:
return "mrzne"
if stupne < 20:
return "chladno"
return "teplo"
print(popis_pocasi(-5))
print(popis_pocasi(12))
print(popis_pocasi(25))Tento kód vypíše:
mrzne
chladno
teploProjděme si všechna tři volání:
popis_pocasi(-5):-5 < 0jeTrue, a tak funkce vrátí"mrzne"a skončí. Druhá podmínka se vůbec nekontroluje.popis_pocasi(12): první podmínka jeFalsea druháTrue, a tak funkce vrátí"chladno".popis_pocasi(25): ani jedna podmínka neníTrue, a tak se funkce dostane až na poslední řádek a vrátí"teplo".
Nepotřebovali jsme žádné elif ani else: jakmile se provede return, zbytek funkce se stejně přeskočí. (S elif a else by funkce fungovala stejně.) Záleží ale na pořadí podmínek, protože vyhraje první return, který se provede. Kdyby funkce nejdřív kontrolovala stupne < 20, vrátila by pro -5 hodnotu "chladno", protože i -5 je menší než 20.
Jak psát:
Pokyny
Funkce cena_vstupenky vrací cenu vstupenky do zoo pro návštěvníka daného věku. Zatím vrací všem 200. Nad řádek return 200 přidejte podmínky: děti mladší 6 let mají vstup zdarma (0) a návštěvníci mladší 18 let platí 100. Program pak vypíše 0, 100 a 200.
Senioři od 65 let platí také 100. Přidejte pro ně do funkce podmínku a na konci programu vypište cena_vstupenky(70).
Začněte programovat zdarma
7/10