4
Funkce
def <jméno>(<arg1, arg2, ..., argN>):
<příkazy – tělo funkce>
return <návratová hodnota>
>>> def krat(x, y): ... return x * y ...
>>> krat(2, 4) 8
>>> krat('Ni', 4) 'NiNiNiNi'
def prunik(posl1, posl2):
vysl = [] for x in posl1: if x in posl2: vysl.append(x) return vysl
>>> prunik("třesky","plesky") ['e', 's', 'k', 'y']
>>> prunik([1, 2, 3], (1, 4)) [1]
X = 99 def funkce(Y): Z = X + Y return Z
funkce(1) y, z = 1, 2 def sglobalnimi():
global x x = y + z >>> def menitko(x, y):
... x = 2 ... y[0] = 'cosi' ...
>>> X = 1
>>> L = [1, 2]
>>> menitko(X, L) >>> X, L (1, ['cosi', 2])
>>> def nekolik(x, y):
... x = 2 ... y = [3, 4]
... return x, y ...
>>> X = 1
>>> L = [1, 2]
>>> X, L = nekolik(X, L) >>> X, L (2, [3, 4])
def fce(spam, eggs, toast=0, ham=0): print (spam, eggs, toast, ham)
fce(1, 2) fce(1, ham=1, eggs=0) fce(spam=1, eggs=0) fce(toast=1, eggs=2, spam=3) fce(1, 2, 3, 4) def prunik(*argumenty):
vysl = []
for x in argumenty[0]: for dalsi in argumenty[1:]: if x not in dalsi: break else: vysl.append(x) return vysl
def sjednoceni(*argumenty):
vysl = []
for posl in argumenty: for x in posl: if not x in vysl: vysl.append(x) return vysl
% python
>>> from prunik2 import prunik, sjednoceni
>>> s1, s2, s3 = "SPAM", "SCAM", "SLAM"
>>> prunik(s1, s2), sjednoceni(s1, s2) (['S', 'A', 'M'], ['S', 'P', 'A', 'M', 'C'])
>>> prunik([1,2,3], (1,4)) [1]
>>> prunik(s1, s2, s3) ['S', 'A', 'M']
>>> union(s1, s2, s3)
['S', 'P', 'A', 'M', 'C', 'L']
lambda argument1, argument2, ..., argumentN : výraz
>>> def f1(x, y, z): return x + y + z
...
>>> f1(2, 3, 4)
9
>>> f2 = lambda x, y, z: x + y + z
>>> f2(2, 3, 4)
9
>>> x = (lambda a="ráz", b="dva", c="tři": a + b + c)
>>> x("dvá")
'dvádvatři'
>>> apply(f1, (2, 3, 4))
9
>>> apply(f2, (2, 3, 4))
9
if podmínka:
action, args = f1, (1,2,3)
else:
action, args = f3, (1)
apply(action, args)
>>> cisilka = [1, 2, 3, 4]
>>> upravena = []
>>> for x in cisilka: ... upravena.append(x + 10) ...
>>> upravena
[11, 12, 13, 14]
>>> def inc(x): return x + 10
...
>>> map(inc, cisilka)
[11, 12, 13, 14]
>>> map((lambda x: x + 3), cisilka) [4, 5, 6, 7]
>>> def proc(x):
... print x ...
>>> x = proc('testujeme 123...')
testujeme 123...
>>> print x
None
>>> seznam = [1, 2, 3]
>>> seznam = seznam.append(4) >>> print seznam None
>>> def vypis(zprava):
... print zprava
...
>>> x = vypis >>> x('Jak se máme?') Jak se máme?
>>> def neprimo(fce, arg):
... fce(arg) ...
>>> neprimo(echo, 'Hello jello!') Hello jello!
>>> codelat = [ (echo, 'Spam!'), (echo, 'Ham!') ]
>>> for (fce, arg) in codelat:
... apply(fce, (arg,))
...
Spam!
Ham!
>>> X = 99
>>> def ktereX():
... print X ...
>>> ktereX()
99
>>> def ktereX():
... print X ... X = 88 ...
>>> ktereX()
Traceback (most recent call last):
File "<interactive input>", line 1, in ?
File "<interactive input>", line 2, in ktery
UnboundLocalError: local variable 'X' referenced before assignment
>>> def ktereX():
... global X ... print X
... X = 88 ...
>>> ktereX()
99
>>> X = 99
>>> def ktereX():
... import __main__ ... print __main__.X ... X = 88 ... print X
...
>>> ktereX()
99
88
if podmínka:
def fce():
tělo
else:
def fce():
tělo
další kód
fce()
def vnejsi(x):
def vnitrni(i):
print i,
if i: vnitrni(i-1)
vnitrni(x)
print vnejsi(3)
>>> def uklada(x=[]): ... x.append(1) ... print x
...
>>> uklada([2]) [2, 1]
>>> uklada() [1]
>>> uklada() [1, 1]
>>> uklada()
[1, 1, 1]
>>> def uklada(x=None):
... if x is None: ... x = [] ... x.append(1) ... print x
...
>>> uklada([2])
[2, 1]
>>> uklada() [1]
>>> uklada()
[1]
def f1(a, b): print a, b def f2(a, *b): print a, b def f3(a, **b): print a, b def f4(a, *b, **c): print a, b, c
def f5(a, b=2, c=3): print a, b, c def f6(a, b=2, *c): print a, b, c
f1(1, 2)
f1(b=2, a=1)
f2(1, 2, 3)
f3(1, x=2, y=3)
f4(1, 2, 3, x=2, y=3)
f5(1)
f5(1, 4)
f6(1)
f6(1, 3, 4)