morsecodeprekladac
Morse code Překladač.
1"""Morse code Překladač.""" 2 3# Slovník pro překlad do morseovy abecedy 4slovnik = { 5 'A': '.-', 6 'B': '-...', 7 'C': '-.-.', 8 'D': '-..', 9 'E': '.', 10 'F': '..-.', 11 'G': '--.', 12 'H': '....', 13 'I': '..', 14 'J': '.---', 15 'K': '-.-', 16 'L': '.-..', 17 'M': '--', 18 'N': '-.', 19 'O': '---', 20 'P': '.--.', 21 'Q': '--.-', 22 'R': '.-.', 23 'S': '...', 24 'T': '-', 25 'U': '..-', 26 'V': '...-', 27 'W': '.--', 28 'X': '-..-', 29 'Y': '-.--', 30 'Z': '--..', 31 '0': '-----', 32 '1': '.----', 33 '2': '..---', 34 '3': '...--', 35 '4': '....-', 36 '5': '.....', 37 '6': '-....', 38 '7': '--...', 39 '8': '---..', 40 '9': '----.', 41 ':': '---...', 42 ',': '--..--', 43 '=': '-...-', 44 '.': '.-.-.-', 45 '-': '-....-', 46 '+': '.-.-.', 47 '?': '..--..', 48 '!': '-.-.--', 49 '@': '.--.-.', 50 ' ': '|', 51} 52 53# Záměna hodnot ve slovníku pro překlad z morseovy abecedy 54slovnik_naopak = {value: key for key, value in slovnik.items()} 55 56 57def sifrovani(text): 58 """ 59 Funkce sifrovani rozpozná znaky ve vloženém řetězci. 60 61 A každému z nich přiřadí korespondující znak ze slovníku a vrátí řetězec. 62 :param text: retezec-Vstup funkce 63 :return: string-Výstup funkce 64 """ 65 textSifra = "" 66 67 # Counter funguje jako ověření, zda se jedná o první iteraci 68 69 counter = 1 70 for znak in text.upper(): 71 if counter != 1: 72 textSifra += " " + slovnik[znak] 73 else: 74 # U první iterace se nepřidává mezera 75 textSifra += slovnik[znak] 76 counter = 0 77 counter = 1 78 return textSifra 79 80 81def desifrovani(text): 82 """ 83 Funkce desifrovani vrací vstupní řetězec převedený z morseovky. 84 85 :param text: retezec-Vstup funkce 86 :return: string-Výstup funkce 87 """ 88 znaky = text.split() 89 # vstup se rozdělí na znaky po jednom a poté je hledá ve slovníku 90 textDesifra = [] 91 # Již dešifrované znaky se ukládají do pole textDesifra 92 93 for i in znaky: 94 if i in slovnik_naopak: 95 textDesifra.append(slovnik_naopak[i]) 96 97 # Vrátí výsledný řetězec 98 return "".join(textDesifra) 99 100 101# vstup od uzivatele: 102 103if __name__ == '__main__': 104 105 a = 1 106 while a == 1: 107 # Smyčka pro restart programu 108 print("\n\t\t Překladač morseovky\n") 109 text = input("Zadejte text k překladu z abecedy do morseovky: ") 110 vysledek = sifrovani(text.upper()) 111 print(vysledek) 112 113 text = input("Zadejte text k překladu z morseovky do abecedy: ") 114 vysledek = desifrovani(text) 115 print(vysledek) 116 print("Pro restart stisknětě Enter\n") 117 konec = input("Pro ukončení programu, zadejte 'konec'\n") 118 # Pokud uživatel zadá do vstupu slovo 'konec', program se ukončí 119 if konec == "konec": 120 a = 2 121 input("Program ukončen \n")
def
sifrovani(text):
58def sifrovani(text): 59 """ 60 Funkce sifrovani rozpozná znaky ve vloženém řetězci. 61 62 A každému z nich přiřadí korespondující znak ze slovníku a vrátí řetězec. 63 :param text: retezec-Vstup funkce 64 :return: string-Výstup funkce 65 """ 66 textSifra = "" 67 68 # Counter funguje jako ověření, zda se jedná o první iteraci 69 70 counter = 1 71 for znak in text.upper(): 72 if counter != 1: 73 textSifra += " " + slovnik[znak] 74 else: 75 # U první iterace se nepřidává mezera 76 textSifra += slovnik[znak] 77 counter = 0 78 counter = 1 79 return textSifra
Funkce sifrovani rozpozná znaky ve vloženém řetězci.
A každému z nich přiřadí korespondující znak ze slovníku a vrátí řetězec.
Parameters
- text: retezec-Vstup funkce
Returns
string-Výstup funkce
def
desifrovani(text):
82def desifrovani(text): 83 """ 84 Funkce desifrovani vrací vstupní řetězec převedený z morseovky. 85 86 :param text: retezec-Vstup funkce 87 :return: string-Výstup funkce 88 """ 89 znaky = text.split() 90 # vstup se rozdělí na znaky po jednom a poté je hledá ve slovníku 91 textDesifra = [] 92 # Již dešifrované znaky se ukládají do pole textDesifra 93 94 for i in znaky: 95 if i in slovnik_naopak: 96 textDesifra.append(slovnik_naopak[i]) 97 98 # Vrátí výsledný řetězec 99 return "".join(textDesifra)
Funkce desifrovani vrací vstupní řetězec převedený z morseovky.
Parameters
- text: retezec-Vstup funkce
Returns
string-Výstup funkce