<-^^->

Přednáška 10

Cvičení

  1. Napište list comprehension pro následující operace s listem xs=[1,4,2,67,2,-90,456,2,1,45,5,6,7,9,-3,2,4,5,61]:
    • převeďte každé číslo na jeho třetí mocninu (x3).
    • převeďte každé číslo na jeho dekadický logaritmus (log x), ale vyberte pouze kladná x (>0).
    • vyberte pouze x dělitelná 2 nebo 3.
    • převeďte každé číslo na řetězec. Číslo by mělo být zarovnané doprava a zabírat minimálně 4 znaky (mezery by měli být použity pro vyplňení prázdného místa).
    • vyberte pouze taková čísla jejichž druhá mocnina je větší než 100.
    • pro každé x menší než 100 vytvořete n-tici (tuple) (x, x2, x3).
    řešení 1
  2. Napište list comprehension pro následující operace s listem ws=["dog","pig","hippo","dogs","tyranosaurus","human","shark","lion"]:
    • převeďte každé slovo na velká písmena.
    • kapitalizujte každé slovo, vyberte však pouze taková, která mají víc než 3 písmena.
    • vyberte pouze slova, která končí na "s".
    • převeďte každé slovo na jeho délku ("lion"->4).
    řešení 1
  3. Upravte program na rozdělení textu na slova z některé z předchozích hodin tak, aby vypisoval slova seřazená podle jejich délky a poté podle abecedního pořadí.
    řešení 1, řešení 2, řešení 3
  4. Napište program na Césarovu šifru. Tato šifra je založená na posouvání písmen o 3 pozice v abecedě (a->d, m->p). Program by měl obsahovat funkce jak pro zašifrování, tak pro dešifrování takové šifry. Tyto funkce by měly brát řetězec a vrátit jeho zašifrovanou (dešifrovanou) podobu.
    řešení 1, řešení 2
  5. Upravte předchozí program, aby umožňoval posouvání písmen o jiné hodnoty než 3.
    řešení 1, řešení 2
  6. Napište program, který zpracuje textový soubor a vypíše o něm následující statitiku:
    • celkový počet znaků
    • počet velkých písmen
    • počet malých písmen
    • počet číslic (0-9)
    • počet znaků interpunkce
    • počet bílých (whitespace) znaků
    • počet znaků, které nespadají do žádné z předchozích kategorií
    řešení 1
  7. Napište program, který z textového souboru přečte postupně všechny řádky a pro každou vypíše součet čísel, které se na této řádce vyskytují oddělené mezerou. Na konci program vypíše součet všech čísel pro celý soubor.
    řešení 1