Как сделать перевод кода Морзе в текст на Python?
У меня есть функция которая переводит код Морзе в текст. Она работает. Теперь мне нужна функция которая переводит текст в код. Я попытался реализовать функцию но она не работает. Я мне нужна помощь с этим.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
def Clean_stroke(content):
result = []
content = str(content).lower()
for element in content:
if ord(element) >= 1072 and ord(element) <= 1103:
result.append(element)
return result
def toMorse(content):
content=ui.lineEdit.text()
rus_to_morse = {'а': '.-',
'б': '-...',
'в': '.--',
'г': '--.',
'д': '-..',
'е': '.',
'ж': '...-',
'з': '--..',
'и': '..',
'й': '.---',
'к': '-.-',
'л': '.-..',
'м': '--',
'н': '-.',
'о': '---',
'п': '.--.',
'р': '.-.',
'с': '...',
'т': '-',
'у': '..-',
'ф': '..-.',
'х': '....',
'ц': '-.-.',
'ч': '---.',
'ш': '----',
'щ': '--.-',
'ъ': '.--.-.',
'ы': '-.--',
'ь': '-..-',
'э': '..-..',
'ю': '..--',
'я': '.-.-'}
content = Clean_stroke(content)
result = []
for element in content:
result.append(rus_to_morse[element])
ui.lineEdit_2.setText(str(result))
for set in result:
for symbol in set:
if symbol == '.':
winsound.Beep(frequency, 100)
elif symbol == '-':
winsound.Beep(frequency, 700)
## print()
## time.sleep(0.2)
return result
def toText(content): # Не работает
content=ui.lineEdit_3.text()
morse_to_text = {'.-': 'а',
'-...': 'б',
'.--': 'в',
'--.': 'г',
'-..': 'д',
'.': 'е',
'...-': 'ж',
'--..': 'з',
'..': 'и',
'.---': 'й',
'-.-': 'к',
'.-..': 'л',
'--': 'м',
'-.': 'н',
'---': 'о',
'.--.': 'п',
'.--.': 'р',
'...': 'с',
'-': 'т',
'..-': 'у',
'..-.': 'ф',
'....': 'х',
'-.-.': 'ц',
'---.': 'ч',
'----': 'ш',
'--.-': 'щ',
'.--.-.': 'ъ',
'--.-.': 'ы',
'--.-.': 'ь',
'..-..': 'э',
'..--': 'ю',
'.-.-': 'я'}
#content = Clean_stroke(content)
result = []
for element in content:
result.append(morse_to_text[element])
ui.lineEdit_4.setText(str(result))
return result
frequency = 1000
По дате
По рейтингу
Просто поменять местами значения и ключи
1234
v = rus_to_morse.values()
k = rus_to_morse.keys()
result = dict(zip(v,k))
print(result)
Получим искомое
{'.-': 'а', '-...': 'б', '.--': 'в', '--.': 'г', '-..': 'д', '.': 'е', '...-': 'ж', '--..': 'з', '..': 'и', '.---': 'й', '-.-': 'к', '.-..': 'л', '--': 'м', '-.': 'н', '---': 'о', '.--.': 'п', '.-.': 'р', '...': 'с', '-': 'т', '..-': 'у', '..-.': 'ф', '....': 'х', '-.-.': 'ц', '---.': 'ч', '----': 'ш', '--.-': 'щ', '.--.-.': 'ъ', '-.--': 'ы', '-..-': 'ь', '..-..': 'э', '..--': 'ю', '.-.-': 'я'}
Попроси у бота в телеграме (chatgpt) Я через минуту-три пойду просить у него такой код