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