Lihtsaid (matemaatilisi) funktsioone saab defineerida lambda-avaldistena. Näiteks raskuskiirendus sõltuvana laiuskraadist:

raskuskiirendus = lambda ϕ: 9.780327 * (1 + 0.0053024*sin(ϕ)**2 - 0.0000058*sin(2*ϕ)**2)

Funktsiooni kasutamine:

# from scipy.constants import degree

g = raskuskiirendus(59.42 * degree) # tagastab g väärtuse Eesti laiuskraadil

Mitut (arvutus)etappi sisaldav funktsioon tuleb kirja panna tavapärasel viisil, kasutades võtmesõna def. Matemaatiline tüüpnäide võiks olla regressioonsirge parameetrite arvutamine:

def sobita_sirge(x, y):
    n = len(x)
    Σx = np.sum(x)
    Σy = np.sum(y)
    Σxx = np.sum(x**2)
    Σxy = np.sum(x*y)
    a = (n*Σxy - Σx*Σy) / (n*Σxx - Σx**2)
    b = (Σy - a*Σx) / n
    s = sqrt(np.sum((y - a * x - b)**2) / (n - 2))
    ua = s / sqrt(Σxx - Σx**2 / n)
    ub = ua * sqrt(Σxx / n)
    return (a, ua), (b, ub)

Arvutuse faktoriseerimise eesmärgil on siin sisse toodud hulk lokaalseid muutujaid. Mõistagi võib funktsiooni definitsioonis kasutada kõiki programmeerimisvõimalusi (if, for, while, jne). (Arvutus)tulemuse võib tagastada suvalisel etapil return-lausega. Mitu skalaarset väärtust saab tagastada kokku pakituna ennikusse (nagu toodud näites). Funktsiooni väljakutsel saab saadud enniku sisu koheselt lahti pakkida eraldi muutujatesse:

(a, ua), (b, ub) = sobita_sirge(aeg, signaal)

Vaata lisaks

Sisukord