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)