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']
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
'x
', jinak se vytiskne tečka '.
'
Vstup: 3 8 13 17 Výstup: ...... .x.xxx x.xx.. .x.x.x ......
První řádek odpovídá spodní hranici $\min_y$, tj. '13
', které je prvočíslem, proto řádek obsahuje samé tečky, totéž platí pro poslední řádek. Prostřední řádek odpovídá číslu '15
', které je soudělné s čísly '3, 5, 6
', proto je výstup 'x.xx..
'.
Vstup: 8 13 88 96 Výstup: x.xxx. ...... xxx.x. .....x x.x.x. .x..x. x.x.x. ..x... xxx.x.
Vstup: 62 69 43 52 Výstup: ........ x.x.x.x. .x.xx..x x.x.x.xx ........ xxx.x.xx .x...... x.xxx.x. .x..x.xx x.xxx.x.
twohundredfiftyseventhousandthreehundredseventyfive
ERROR
one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen, twenty, thirty, forty, fifty, sixty, seventy, eighty, ninety, hundred, thousand
.
1000
vypište onethousand
, podobně pro 120
se očekává výstup onehundredtwenty
Vstup: twohundredfiftyseventhousandthreehundredseventyfive Výstup: 257375
Vstup: 543210 Výstup: fivehundredfortythreethousandtwohundredten
Vstup: tentwenty Výstup: ERROR
Vstup: seventytwothreehundred Výstup: ERROR