我正在尝试将用户输入的摩尔斯电码转换回字母,但转换后单词不会分开。他们都加入了

问题描述 投票:0回答:1

我正在尝试将用户输入的摩尔斯电码转换回字母,但转换后单词不会分开。他们都加入了。我尝试了不同的连接和拆分方法,但仍然得到相同的结果。

 %Run String.py

.... . .-.. .-.. --- .-- --- .-. .-.. -..

Eingabe: H E L L O W O R L D 
import re
morse_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': '--..',
    'Ä': '.-.-', 'Ö': '---.', 'Ü': '..--', 'ß': '...--..',
    '0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-',
    '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.'
}

reverse_morse_dict = {value: key for key, value in morse_dict.items()}
#wandeln zu Morsecode um

'''def Eingabe_zu_morse(eingabe_text):
    #enfernt ungewünschte Zeihcnen und wandelt zu große Buchstabe um
    filtered = re.sub(r'[^a-zA-Z0-9\söäüÖÄÜß]', '', eingabe_text)
    filtered= filtered.upper()
    
    #wandeln zu Morsecode um
    morse_code = []
    for char in filtered:
        if char == ' ':
            morse_code.append(' ')
        elif char in morse_dict:
            morse_code.append(morse_dict[char])
    #verbindet Morsecode mit Leerzeichnen
    morse_code_str = ' '.join(morse_code).replace('  ', ' ')
    
    return morse_code_str '''
#Wandelt Morse code wieder zu Text
def Morse_zu_text(morse_code):
    worten = morse_code.strip().split('   ') # Stellt Wörten mit 3 Leerzeichnen abstand
    decoded_text = []
    
    for wort in worten:
        characters = wort.split(' ')
        decode_wort = ' '.join([reverse_morse_dict[char] for char in characters if char in reverse_morse_dict])
        decoded_text.append(decode_wort)
    return '  '.join(decoded_text)

eingabe = input()
#enngabe= '-'.join(eingabe)
#filtered = re.sub(r'[^a-zA-Z0-9\söäüÖÄÜß]', '', eingabe)
#filtered= filtered.upper()
#enngabe= '-'.join(filtered)

#morse_output = Eingabe_zu_morse(eingabe)
text_output = Morse_zu_text(eingabe)

#print(f'Eingabe: {morse_output}')
print(f'Eingabe: {text_output}')
python join strip morse-code
1个回答
0
投票

您只是用太多空格加入了它们。我相信摩尔斯电码中的“”只是字母的分隔符,所以你必须更改这行代码

for wort in worten:
        characters = wort.split(' ')
 =>     decode_wort = ' '.join([reverse_morse_dict[char] for char in characters if char in reverse_morse_dict])
        decoded_text.append(decode_wort)

要像这样:

decode_wort = ''.join([reverse_morse_dict[char] for char in characters if char in reverse_morse_dict])
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.