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'
, pokud čísla nejsou soudělná a jedno z čísel $m$, nebo $n$ je prvočíslo, vytiskne 'p'
jinak se vytiskne mezera ' '
'|'
, řádky oddělte znaky '-'
, viz. příklady níže.
Např. pro vstup
2 10vypadá výsledek takto:
x|p|x|p|x|p|x|p|x ----------------- p|x|p|p|x|p|p|x|p ----------------- x|p|x|p|x|p|x| |x ----------------- p|p|p|x|p|p|p|p|x ----------------- x|x|x|p|x|p|x|x|x ----------------- p|p|p|p|p|x|p|p|p ----------------- x|p|x|p|x|p|x| |x ----------------- p|x| |p|x|p| |x| ----------------- x|p|x|x|x|p|x| |xpro vstup
11 10vypadá výsledek takto:
x|p --- p|xpro vstup
2 1vypadá výsledek takto:
ERROR
1.00256
jednaceladvestepadesatseststotisicin
dvacetpetcelychsestsetin
25.06
123.00200
stodvacettricelychdvestestotisicin
ctyriceledvanacttisictristactyricetpetmiliontin
4.012345
2.01010
dvaceletisicdesetstotisicin
nula, 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, desetin, setin, tisicin, desetitisicin, stotisicin, miliontin
.
Vstup: 999.999999 Výstup: devetsetdevadesatdevetcelychdevetsetdevadesatdevettisicdevetsetdevadesatdevetmiliontin
Vstup: petsetcelychdvacetjednamiliontin Výstup: 500.000021
Vstup: desetcelychstodesetin Výstup: ERROR
Vstup: desetdvacetcelychpetseststo Výstup: ERROR