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