Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def encode_to_morse(text):
- a = [list(i) for i in text.split(' ')]
- k = ''
- for i in a:
- s = ''
- for j in i:
- s += MorseCode[j] + ' '
- k += ' ^ ' + s[:-1]
- return k[3:]
- def decode_from_morse(txt):
- a = [i for i in txt.split()]
- decode_morse = {
- '--.-': 'q',
- '.--': 'w',
- '.': 'e',
- '.-.': 'r',
- '-': 't',
- '-.--': 'y',
- '..-': 'u',
- '..': 'i',
- '---': 'o',
- '.--.': 'p',
- '.-..': 'l',
- '-.-': 'k',
- '.---': 'j',
- '....': 'h',
- '--.': 'g',
- '..-.': 'f',
- '-..': 'd',
- '...': 's',
- '.-': 'a',
- '--..': 'z',
- '-..-': 'x',
- '-.-.': 'c',
- '...-': 'v',
- '-...': 'b',
- '-.': 'n',
- '--': 'm'}
- code = ''
- for i in a:
- if i == '^':
- code += ' '
- else:
- code += decode_morse.get(str(i), str(i))
- return code
- def main():
- global start
- a = input(
- 'Укажите, пожалуйста, на каком языке сообщение: 1 - Английский, 2 - Азбука морзе, 3 - Выход.')
- if a == '3':
- return False
- while a != '1' and a != '2':
- print('Ошибка ввода')
- a = input(
- 'Укажите, пожалуйста, на каком языке сообщение: 1 - Английский, 2 - Азбука морзе, 3 - Выход.')
- if start == 0:
- print('В сообщении или коде должны быть только латинские буквы и пробелы.')
- print('Пробелы в азбуке морзе оформляютя как знак " ^ ", а между буквами стоит одинарный пробел.')
- start = 1
- if a == '1':
- print(encode_to_morse(input().lower()))
- if a == '2':
- print(decode_from_morse(input().lower()))
- if a == '3':
- return False
- return True
- start = 0
- global MorseCode
- MorseCode = {'q': '--.-',
- 'w': '.--',
- 'e': '.',
- 'r': '.-.',
- 't': '-',
- 'y': '-.--',
- 'u': '..-',
- 'i': '..',
- 'o': '---',
- 'p': '.--.',
- 'l': '.-..',
- 'k': '-.-',
- 'j': '.---',
- 'h': '....',
- 'g': '--.',
- 'f': '..-.',
- 'd': '-..',
- 's': '...',
- 'a': '.-',
- 'z': '--..',
- 'x': '-..-',
- 'c': '-.-.',
- 'v': '...-',
- 'b': '-...',
- 'n': '-.',
- 'm': '--'}
- a = True
- while a:
- a = main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement