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
teplo

Projděme si všechna tři volání:

  • popis_pocasi(-5): -5 < 0 je True, a tak funkce vrátí "mrzne" a skončí. Druhá podmínka se vůbec nekontroluje.
  • popis_pocasi(12): první podmínka je False a 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.

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

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

7/10