## cvičení 5
## řetězce a šifry
from random import randint, random



## ŘETĚZCE ##

# ÚLOHA 1
# Napište funkci, která mezi každá dvě písmena daného textu vloží dodaný text.
def dummy(text, rubbish):
    pass

# vzorový výstup:
# >>> dummy('pampeliska', '')
# pampeliska
# >>> dummy('pampeliska', 'X')
# pXaXmXpXeXlXiXsXkXa
# >>> dummy('pampeliska', 'XX')
# pXXaXXmXXpXXeXXlXXiXXsXXkXXa


# ÚLOHA 2
# Napište funkci, která vám vrátí řetězec s písmeny uspořádanými pozpátku.
def reverse(text):
    pass

# vzorový výstup:
# >>> reverse('ONMEJATEJOLSEH')
# HESLOJETAJEMNO


# ÚLOHA 3
# Napište funkci, která spočítá počet výskytů <'A'> <'a'>.
def count_a(text):
    pass

# vzorový výstup:
# >>> count_a('Liska Adela')
# 3
# >>> count_a('leze po železe')
# 0


# ÚLOHA 4
# Napište funkci, která dostane dva řetězce a vypíše ty znaky, které
# jsou na shodných pozicích stejné.
def string_intersection(left, right):
    pass

# vzorový výstup:
# >>> string_intersection('ZIRAFA', 'KARAFA')
# R A F A
# >>> string_intersection('PES', 'KOCKA')
#


# ÚLOHA 5
# Napište funkci, která vrátí, zda je řetězec palindromem. Palindromem je
# takové slovo čivěta, která má při čtení v libovolném směru stejný význam,
# například nepotopen či jelenovi pivo nelej (mezery můžete ignorovat).
def palindrom(text):
   pass


# vzorový výstup:
# >>> palindrom("JELENOVIPIVONELEJ")
# "Toto je palindrom."
# >>> palindrom("NAHODNAVETA")
# "Toto není palindrom."


# ÚLOHA 6
# Napište funkci pro kapitalizaci všech slov v dodaném vstupním řetězci.
def capitalize(text):
    pass

# vzorový výstup:
# >>> capitalize("jenom tak klidne levituji ve vzduchu.")
# Jenom Tak Klidne Levituji Ve Vzduchu.



## ŠIFRY ##

# ÚLOHA 7
# Napište funkci, která zašifruje text tak, že posune všechna jeho písmena v
# abecedě o <n> dopředu (cyklicky), můžete se inspirovat popisem Caesarovy šifry.
# Šifra modifikujte pouze písmena malé a velké anglické abecedy, ostatní znaky nechte nezměněné.
# Můžete předpokládat, že výstupem jsou pouze velká písmena abecedy.
# <text> je textov řetězec, <klic> je celé číslo
def caesar(text, klic):
    pass

# vzorový výstup:
# >>> caesar('zirafa', 3)
# CLUDID


# ÚLOHA 7
# Napište funkci, která zašifruje text podle předem daného klíče. 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. Můžete se
# inspirovat popisem Vigenèrovy šifry.
# Šifra modifikujte pouze písmena malé a velké anglické abecedy, ostatní znaky nechte nezměněné.
# Můžete předpokládat, že výstupem jsou pouze velká písmena abecedy.
# <text> je jedno slovo, <klic> je také jedno slovo
def vigenere(text, klic):
    pass

# vzorový výstup:
# >>> vigenere('pampeliska', 'klic')
# ZLUROWQUUL



if __name__ == "__main__":
    # zde můžete volat implementované funkce a zkusit si, jak fungují
    dummy('pampeliska', '')
