laipsnis = 2 dar_vienas_skaichius = 7 # Funkcijai parametrai VISADA perduodami kaip reference'as def kvadratu(skaichius, eilute = 'Tuščia eilutė', a = dar_vienas_skaichius): """Kėlimo kvadratu funkcija, papildomai išspausdina 'eilute' """ global laipsnis # Kaip ir PHP print eilute print a # a = 7 (o ne 8) skaichius = skaichius**laipsnis return skaichius a = 20 dar_vienas_skaichius = 8 # Nukopijuojam ;-) kvadratas = kvadratu print kvadratas (a) # 400
# Funkcija išsisaugo jai perduotus parametrus def prideti (skaichius, sarashas = []): sarashas.append (skaichius) return sarashas print prideti (1) # [1] print prideti (2) # [1, 2] print prideti (3) # [1, 2, 3]
# Parametrai perduodami keywords'ais def funkcija (a, b): print "a =", a print "b =", b funkcija (a = 1, b = 2) # FIXME ar tikrai veikia?
def gyvenimo_prasme: # ... return surasta_prasme kitas_pavadinimas = gyvenimo_prasme print surasta_prasme
iprastas_vardas = "Linas" def spausdinti_varda (vardas = iprastas_vardas): print vardas iprastas_vardas = "Tomas" spausdinti_varda () # "Linas"
def make_incrementor(n): return lambda x: x + n f = make_incrementor(42) print f(0) # 42 print f(1) # 43
def gyvenimo_prasme (x, y): """Funkcija, nustatanti gyvenimo prasmę. Funkcija, naudojanti Lino Gyvenimo Prasmės Nustatymo Algoritmą """ # Spausdiname aprašymą print gyvenimo_prasme.__doc__
Sukuriame funkciją:
def ar_pirminis (skaicius): """Funkcija nustato, ar skaichius yra pirminis.""" # Dalinasi ish 2? if (skaicius % 2 == 1): puse_skaiciaus = (skaicius - 1) / 2 else: puse_skaiciaus = skaicius / 2 pirminis = 1 for x in range(1, puse_skaiciaus+1): if (skaicius % x == 0 and x != 1): pirminis = 0 break return pirminis
Spausdiname tik pirminius skaičius nuo 1 iki 49:
print filter (ar_pirminis, range (50))
def kubas (skaicius): return skaicius * skaicius * skaicius # Spausdiname pirmu 11 skaichiu kubus print map (kubas, range (1, 11));
def sudetis (pirmas, antras): return pirmas + antras # Spausdiname [1..10] ir [21..30] sumas print map (sudetis, range (1, 11), range (21, 31))
Skaičiuojame [1..10] skaitmenų sumą.
reduce()
funkcijai perduoda pirma ir antra elementus, tada - funkcijos rezultatą ir trečią elementą, tada …
Trečiu reduce()
parametru galima nurodyti, nuo kurio elemento pradėti (pagal elemento reikšmę).
print reduce (sudetis, range (1, 11))
Pavyzdyje aprašytą veiksmą atlieka ir sum()