Funkcijos

Paprasčiausia funkcija

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

Parametrų išsaugojimas

# 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]

Parametrų perdavimas keywords'ais

# Parametrai perduodami keywords'ais
def funkcija (a, b):
	print "a =", a
	print "b =", b
 
funkcija (a = 1, b = 2)  # FIXME ar tikrai veikia?

Funkcijos alias'as

def gyvenimo_prasme:
      # ...
      return surasta_prasme
 
kitas_pavadinimas = gyvenimo_prasme
print surasta_prasme

Default'iniai parametrai

iprastas_vardas = "Linas"
 
def spausdinti_varda (vardas = iprastas_vardas):
    print vardas
 
iprastas_vardas = "Tomas"
spausdinti_varda () # "Linas"

Lambda funkcijos

def make_incrementor(n):
    return lambda x: x + n
 
f = make_incrementor(42)
 
print f(0) # 42
print f(1) # 43

Dokumentacija

def gyvenimo_prasme (x, y):
    """Funkcija, nustatanti gyvenimo prasmę.
 
    Funkcija, naudojanti Lino Gyvenimo Prasmės Nustatymo Algoritmą
    """
 
# Spausdiname aprašymą
print gyvenimo_prasme.__doc__

filter()

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))

map()

Pirmas pavyzdys

def kubas (skaicius): return skaicius * skaicius * skaicius
 
# Spausdiname pirmu 11 skaichiu kubus
print map (kubas, range (1, 11));

Antras pavyzdys

def sudetis (pirmas, antras): return pirmas + antras
 
# Spausdiname [1..10] ir [21..30] sumas
print map (sudetis, range (1, 11), range (21, 31))

reduce()

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()

This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information
 
Jei nenurodyta kitaip, šio wiki turinys ginamas tokia licencija: CC Attribution-Noncommercial-Share Alike 4.0 International
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki