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
získáte funkcí chr(x)
Např. pro vstup
3 4484386 5430482 997155 6818895 2444051 6275419vypadá výsledek takto:
:-)
pro vstup
9 1334386 13553534 3422019 12611931 8627474 6240422 12426219 12740481 13055039 7863151 9461235 9289245 12206332 15916244 6835579 14041121 3957597 11286009vypadá výsledek takto:
Rozumite?
pro vstup
10 12994044 8108268 14877663 11703507 1093472 1825888 4053122 8115466 17435933 18487747 1926688 904864 17461286 15207014 19130135 15972695 15720953 4226951 3450782 91862vypadá výsledek takto:
To je vse.
1.11.1958
the first of November onethousandninehundredfiftyeight
ERROR
the
, pak následuje řadová číslovka, pak slovo of
a číslo reprezentující rok
.
, číslo reprezentující měsíc, znak .
, číslo reprezentující rok
the, first, second, third, th, fifth, eighth, ninth, twelfth, twentieth, thirtieth, of, January, February, March, April, May, June, July, August, September, October, November, December, 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: 31.12.3219 Výstup: the thirty-first of December threethousandtwohundrednineteen
Vstup: the twenty-ninth of February onethousandtwohundredthirtyfour Výstup: 29.2.1234
Vstup: 2.9.5.1234 Výstup: ERROR
Vstup: the fivetwentieth of January twenty Výstup: ERROR
Vstup: the twentieth of January twentyten Výstup: ERROR