Search
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.
YYYYMMDD
True
False
def priklad2 (datum1, datum2): # vase implementace pass # priklad volani ret = priklad2 ('20210101', '20210110') print(ret) # vytiskne nasledujici: # (9, True)
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.
def priklad3 (riman): # vase implementace pass # priklad volani ret = priklad3 ('MDIV') print (ret) # vytiskne nasledujici: # 1504
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.
a
b
z
def priklad4 (text, klic): # vase implementace pass # priklad volani ret = priklad4 ('pampeliska', 'klic') print (ret) # vytiskne nasledujici: # ZLUROWQUUL
5. Napište funkci pro kapitalizaci všech slov v textovém řetězci.
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.
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