Při programování často potřebujeme vykonat určité operace opakovaně. K tomu se hodí tzv. funkce.
def a tělo funkce (vnitřní příkazy) jsou odsazeny
def jmenoFunkce( parametry ): telo_funkce
Maximum ze dvou čísel:
def maximum(x,y): if x>y: return x else: return y
return vrací výsledek funkce. Příklad volání této funkce:
max = maximum(2,0.5) print(max) # nebo rovnou muzeme predat jiné funkci a = 6 b = 7 print("Maximum z ",a," a ", b, " je ", maximum(a,b))
def hello(): print("Hello World!")
return
hello()
def maximum2(x,y): if (x > y): return x, True else: return y, False
maxValue, info = maximum2(5,6) #zkusime predat printu: print("Maximum z 5,6 je ", maximum2(5,6))
quit()
if (spatny_vstup): quit()
input() - načte řetězec ze standardního vstupu
print( argumenty ) - tiskne řetězec na standardní výstup
int( argument ) - převod na celé číslo
float( argument ) - převod na reálné číslo
str( argument ) - převod na řetězec
quit() - ukončí běh programu
soucet_delitelu, která spočte součet dělitelů čísla $n$, tedy funkci $f(n)$.
soucet_delitelu použijte v programu, který vypíše seznam super-dokonalých čísel od 1 do 10000.
gcd1(a,b) a gcd2(a,b), které vrátí největšího společného dělitele čísel $a$ a $b$.
ord('A'), opačně znak z celého čísla získáte funkcí chr(65)
convert_num_to_month, která dostane jako parametr pořadové číslo měsíce v roku a vrátí jeho jméno.
convert_month_to_num, která dostane jako parametr jméno měsíce v roku a vrátí jeho pořadové číslo v roce.
month=['leden','unor','brezen','duben','kveten','cerven','cervenec','srpen','zari','rijen','listopad','prosinec']
a(x,y,z) a b(x,y,z) se třemi logickými proměnnými a zjistí, zda výrazy jsou ekvivalentní, případně vypíše pro jaké kombinace vstupů se výstupy liší. Porovnejte následující funkce:
def a(x,y,z): return (x and y) or (not y and z) def b(x,y,z): return x or z
min(a,b), která vrací minimum z těchto dvou prvků (proměnné jsou čísla).
max(a,b)
area(radius), která vypočítá obsah kruhu o zadaném poloměru
d2r(angle), která převede stupně na radiány “degrees to radians = d2r”
r2d(angle), která převede radiány na stupně
normalize(angle), která převede zadaný úhel (v radiánech) do intervalu $<0, 2\pi)$
for
while