Jednotlivé funkce pište do jednoho souboru pojmenovaného {login}.py a nahrajte do BRUTE (ZK1).
1. Napište funkci, jejímž argumentem je matice celých čísel obecné velikosti. Návratovou hodnotou funkce je seznam, ve kterém jsou prvky z původní matice vybrané jako spirála ve směru hodinových ručiček (viz příklad).
Příklad:
def priklad1 (matice): # vase implementace pass # volani matice ret = priklad1([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]) print (ret) # vytiskne nasledujici: # [1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10
Hodnocení: 8 bodů
2. Napište funkci, která spočítá rozdíl ve dnech mezi dvěma daty v rámci jednoho nepřestupného roku. Data jsou zadána ve formě textových řetězců ve formátu YYYYMMDD
, pořadí argumentů je libovolné. Návratová hodnota je tuple, jehož první položka je je kladné číslo reprezentující rozdíl vstupních letopočtů. Druhá hodnota je True
v případě, že nedošlo k žádné chybě a False
v případě nesprávného formátu vstupních data.
Příklad:
def priklad2 (datum1, datum2): # vase implementace pass # priklad volani ret = priklad2 ('20210101', '20210110') print(ret) # vytiskne nasledujici: # (9, True)
Hodnocení: 8 bodů
3. Napište funkci pro převod čísla v rozsahu 1 - 1999 reprezentovaného římskými číslicemi do vyjádření v arabských číslicích.
Příklad:
def priklad3 (riman): # vase implementace pass # priklad volani ret = priklad3 ('MDIV') print (ret) # vytiskne nasledujici: # 1504
Hodnocení: 8 bodů
4. Napište funkci, který provede kódování pomocí Vigenèrovy šifry. Šifrování probíhá posunem písmen podobně jako u Caesarovy šifry s tím rozdílem, že Vigenèrova šifra využívá klíč. Pro posun písmen zdrojového textu se postupně používají písmena z klíče: a
posouvá o 0, b
o 1, … z
o 25. Pokud je klíč kratší než zdrojový text, jsou použita písmena z klíče opět od začátku. Znaky zdrojového textu jsou z množiny A-Za-z, klíč je pouze z malých písmen.
Příklad:
def priklad4 (text, klic): # vase implementace pass # priklad volani ret = priklad4 ('pampeliska', 'klic') print (ret) # vytiskne nasledujici: # ZLUROWQUUL
Hodnocení: 8 bodů
5. Napište funkci pro kapitalizaci všech slov v textovém řetězci.
Příklad:
def priklad5 (text): # vase implementace pass # priklad volani ret = priklad5 ('jenom tak klidne levituji ve vzduchu') print (ret) # vytiskne nasledujici: # Jenom Tak Klidne Levituji Ve Vzduchu
Hodnocení: 4 body
6. Napište funkci, jejímž argumentem bude seznam čísel. V seznamu čísel nalezněte minimální a maximální hodnotu, vyřaďte je ze seznamu a vypočítejte ar. půměr.
Příklad:
def priklad6 (data): # vase implementace pass # priklad volani ret = priklad6 ([10, 4, 2, 3, 5, 6, 2, 1]) print (ret) # vytiskne nasledujici (na presnosti nezalezi): # 3.666667
Hodnocení: 4 body