def pocet_slov(text):
    """
    počet slov v textu

    text: řetězec, ve kterém se počítají slova
        (slova jsou skupiny znaků bez oddělovačů (' ', '\t', '\n')
    návratová hodnota: int - počet slov
    """
    pocet = 0 # počítadlo
    ve_slove = False # příznak, zda aktuální znak je součást slova
    for znak in text: # postupně pro všechny znaky
        if znak.isspace(): # oddělovač
            ve_slove = False # nastavení příznaku 'není ve slově'
        elif not ve_slove: # první znak ve slově
            ve_slove = True # nastavení příznaku 've slově'
            pocet = pocet + 1 # aktualizace počítadla
    return pocet
    
def obracena_veta(veta):
    """
    obrácení pořadí slov ve větě

    veta: řetězec, za slova pokládáme části oddělené mezerami
    návratová hodnota: řetězec, slova v opačném pořadí, 
        oddělení mezerami zachováno
    """
    vysledek = "" # proměnná, kde tvořím výsledek
    konec_slova = len(veta) # index za koncem slova
    mezera = veta.rfind(" ")
    # dokud existuje mezera (hledaná odzadu)
    while mezera != - 1:
        # přidej do výsledku slovo a mezeru
        vysledek = vysledek + veta[mezera + 1:konec_slova] + " "
        # hledání pokračuje v počáteční části věty
        konec_slova = mezera
        mezera = veta.rfind(" ", 0, mezera)
    # do výsledku přidáme slovo začínající na počátku
    return vysledek + veta[:konec_slova]

# testovací příklady
if __name__ == "__main__":
    print("--- počítání slov ---")
    print("' \njen\ttři   slova': slov", pocet_slov(" \njen\ttři   slova"))
    print("\"'Frýdek-Místek'\nje dvojměstí\": slov", pocet_slov("'Frýdek-Místek'\nje dvojměstí"))
    print("'+24 + 5 =29': slov", pocet_slov("+24 + 5 =29"))
    print("'': slov", pocet_slov(""))

    print("--- obracení pořadí slov ---")
    print("1 2 3 4 5 6 7 8 9 10 =>", obracena_veta("1 2 3 4 5 6 7 8 9 10"))
    print("' jaro  léto  podzim zima   ' => '", obracena_veta(" jaro  léto  podzim  zima   "), "'", sep = "")
    print("'' => '", obracena_veta(""), "'", sep = "")
    
