logo

Перекладач азбуки Морзе на Python

Азбука Морзе — це метод передачі текстової інформації у вигляді серії звукових сигналів, індикаторів або клацань, які можуть бути зрозумілі досвідченому слухачеві або спостерігачеві без спеціального обладнання. Він названий на честь Семюеля Ф. Б. Морзе, винахідника телеграфу.

Алгоритм

Алгоритм дуже простий. Кожний символ в англійській мові замінюється серією «крапок» і «тире» або іноді просто «крапкою» або «тире» і навпаки.
Будь ласка, зверніться до цієї Вікіпедії зображення для деталей.



Шифрування

  1. У разі шифрування ми витягуємо кожен символ (якщо не пробіл) зі слова по одному та зіставляємо його з відповідним кодом Морзе, збереженим у будь-якій структурі даних, яку ми вибрали (якщо ви кодуєте на Python, словники можуть вийти бути дуже корисним у цьому випадку)
  2. Зберігайте азбуку Морзе у змінній, яка міститиме наш закодований рядок, а потім ми додаємо пробіл до нашого рядка, який міститиме результат.
  3. Під час кодування азбукою Морзе нам потрібно додати 1 пробіл між кожним символом і 2 пробіли поспіль між кожним словом.
  4. Якщо символ є пробілом, додайте ще один пробіл до змінної, що містить результат. Ми повторюємо цей процес, поки не пройдемо весь рядок

Розшифровка

  1. У випадку дешифрування ми починаємо з додавання пробілу в кінці рядка, який потрібно декодувати (це буде пояснено пізніше).
  2. Тепер ми продовжуємо витягувати символи з рядка, поки не залишимо місця.
  3. Як тільки ми отримуємо пробіл, ми шукаємо відповідний символ англійської мови у витягнутій послідовності символів (або нашому азбуці Морзе) і додаємо його до змінної, яка зберігатиме результат.
  4. Пам’ятайте, що відстеження місця є найважливішою частиною цього процесу дешифрування. Як тільки ми отримаємо 2 пробіли поспіль, ми додамо ще один пробіл до нашої змінної, що містить декодований рядок.
  5. Останній пробіл у кінці рядка допоможе нам визначити останню послідовність символів азбуки Морзе (оскільки пробіл діє як перевірка для вилучення символів і початку їх декодування).

Реалізація:

Python надає структуру даних під назвою словник, яка зберігає інформацію у формі пар ключ-значення, що дуже зручно для реалізації шифру, наприклад азбуки Морзе. Ми можемо зберегти таблицю азбуки Морзе в словнику, де (пари ключ-значення) => (англійські символи-азбука Морзе) . Відкритий текст (англійські символи) займає місце ключів, а зашифрований текст (азбука Морзе) формує значення відповідних ключів. Значення ключів можна отримати зі словника так само, як ми отримуємо доступ до значень масиву через їхній індекс і навпаки.

Python3




javac не розпізнається





# Python program to implement Morse Code Translator> '''> VARIABLE KEY> 'cipher' ->'зберігає форму перекладу Морзе англійського рядка'> 'decipher' ->'зберігає англійську перекладену форму рядка Морзе'> 'citext' ->'зберігає код Морзе з одного символу'> 'i' ->'підраховує пробіли між символами Морзе'> 'message' ->'зберігає рядок для кодування або декодування'> '''> # Dictionary representing the morse code chart> MORSE_CODE_DICT>=> {>'A'>:>'.-'>,>'B'>:>'-...'>,> >'C'>:>'-.-.'>,>'D'>:>'-..'>,>'E'>:>'.'>,> >'F'>:>'..-.'>,>'G'>:>'--.'>,>'H'>:>'....'>,> >'I'>:>'..'>,>'J'>:>'.---'>,>'K'>:>'-.-'>,> >'L'>:>'.-..'>,>'M'>:>'--'>,>'N'>:>'-.'>,> >'O'>:>'---'>,>'P'>:>'.--.'>,>'Q'>:>'--.-'>,> >'R'>:>'.-.'>,>'S'>:>'...'>,>'T'>:>'-'>,> >'U'>:>'..-'>,>'V'>:>'...-'>,>'W'>:>'.--'>,> >'X'>:>'-..-'>,>'Y'>:>'-.--'>,>'Z'>:>'--..'>,> >'1'>:>'.----'>,>'2'>:>'..---'>,>'3'>:>'...--'>,> >'4'>:>'....-'>,>'5'>:>'.....'>,>'6'>:>'-....'>,> >'7'>:>'--...'>,>'8'>:>'---..'>,>'9'>:>'----.'>,> >'0'>:>'-----'>,>', '>:>'--..--'>,>'.'>:>'.-.-.-'>,> >'?'>:>'..--..'>,>'/'>:>'-..-.'>,>'-'>:>'-....-'>,> >'('>:>'-.--.'>,>')'>:>'-.--.-'>}> # Function to encrypt the string> # according to the morse code chart> def> encrypt(message):> >cipher>=> ''> >for> letter>in> message:> >if> letter !>=> ' '>:> ># Looks up the dictionary and adds the> ># corresponding morse code> ># along with a space to separate> ># morse codes for different characters> >cipher>+>=> MORSE_CODE_DICT[letter]>+> ' '> >else>:> ># 1 space indicates different characters> ># and 2 indicates different words> >cipher>+>=> ' '> >return> cipher> # Function to decrypt the string> # from morse to english> def> decrypt(message):> ># extra space added at the end to access the> ># last morse code> >message>+>=> ' '> >decipher>=> ''> >citext>=> ''> >for> letter>in> message:> ># checks for space> >if> (letter !>=> ' '>):> ># counter to keep track of space> >i>=> 0> ># storing morse code of a single character> >citext>+>=> letter> ># in case of space> >else>:> ># if i = 1 that indicates a new character> >i>+>=> 1> ># if i = 2 that indicates a new word> >if> i>=>=> 2> :> ># adding space to separate words> >decipher>+>=> ' '> >else>:> ># accessing the keys using their values (reverse of encryption)> >decipher>+>=> list>(MORSE_CODE_DICT.keys())[>list>(MORSE_CODE_DICT> >.values()).index(citext)]> >citext>=> ''> >return> decipher> # Hard-coded driver function to run the program> def> main():> >message>=> 'GEEKS-FOR-GEEKS'> >result>=> encrypt(message.upper())> >print> (result)> >message>=> '--. . . -.- ... -....- ..-. --- .-. -....- --. . . -.- ... '> >result>=> decrypt(message)> >print> (result)> # Executes the main function> if> __name__>=>=> '__main__'>:> >main()>

найкращий хентай
>

>

Вихід:

--. . . -.- ... -....- ..-. --- .-. -....- --. . . -.- ... GEEKS-FOR-GEEKS>