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 mezera ' '
'|' resp. '-' mezi sloupce resp. řádky.
Např. pro vstup 100 vypadá výsledek takto:
x| | | | | | |x| | ------------------- |x| |x| |x| |x| |x ------------------- | |x| | |x| | |x| ------------------- |x| |x| |x| |x| |x ------------------- | | | |x| | | | |x ------------------- |x|x|x| |x| |x|x|x ------------------- | | | | | |x| | | ------------------- x|x| |x| |x| |x| |x ------------------- | |x| | |x| | |x| ------------------- |x| |x|x|x| |x| |xpro vstup 6 vypadá výsledek takto:
| | | | | ----------- |x| |x| |x ----------- | |x| | |x ----------- |x| |x| |x ----------- | | | |x| ----------- |x|x|x| |xpro vstup 1 vypadá výsledek takto:
ERROR
1.11.1958
prvniho listopadu tisicdevetsetpadesatosm
ERROR
prvniho, druheho, tretiho, ctvrteho, pateho, sesteho, sedmeho, osmeho, devateho, desateho, jedenacteho, dvanacteho, trinacteho, ctrnacteho, patnacteho, sestnacteho, sedmnacteho, osmnacteho, devatenacteho, dvacateho, tricateho, ledna, unora, brezna, dubna, kvetna, cervna, cervence, srpna, zari, rijna, listopadu, prosince, jedna, dva, tri, ctyri, pet, sest, sedm, osm, devet, deset, jedenact, dvanact, trinact, ctrnact, patnact, sestnact, sedmnact, osmnact, devatenact, dvacet, tricet, ctyricet, padesat, sedesat, sedmdesat, osmdesat, devadesat, sto, dveste, trista, ctyrista, petset, sestset, sedmset, osmset, devetset, tisic, tisice.
1000 vypište tisic, pro 2100 se očekává výstup dvatisicesto
Vstup: 31.12.3219 Výstup: tricatehoprvniho prosince tritisicedvestedevatenact
Vstup: dvacatehodevateho unora tisicdvestetricetctyri Výstup: 29.2.1234
Vstup: 2.9.5.1234 Výstup: ERROR
Vstup: tricatehodvacateho blbna osmsetdvestepadesattricetosmdevet Výstup: ERROR