📜  Python中的摩尔斯电码翻译器(1)

📅  最后修改于: 2023-12-03 14:46:40.837000             🧑  作者: Mango

Python中的摩尔斯电码翻译器

摩尔斯电码是一种用点(.)和划线(-)表示字母、数字和标点符号的编码方式。Python中我们可以编写一个简单的摩尔斯电码翻译器来将普通文本转换为摩尔斯电码,或者将摩尔斯电码转换为普通文本。

下面是一个使用Python编写的摩尔斯电码翻译器的示例代码:

# 摩尔斯电码字母表
morse_code = {
    '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': '----.',
    '.': '.-.-.-', ',': '--..--', '?': '..--..', "'": '.----.', '!': '-.-.--', '/': '-..-.', '(': '-.--.',
    ')': '-.--.-', '&': '.-...', ':': '---...', ';': '-.-.-.', '=': '-...-', '+': '.-.-.', '-': '-....-',
    '_': '..--.-', '"': '.-..-.', '$': '...-..-', '@': '.--.-.', ' ': '/'
}

def encode_morse_code(text):
    text = text.upper()
    morse_code_text = ''
    for char in text:
        if char in morse_code:
            morse_code_text += morse_code[char] + ' '
    return morse_code_text.strip()

def decode_morse_code(morse_code_text):
    text = ''
    morse_code_text = morse_code_text.split(' ')
    for code in morse_code_text:
        for char, morse in morse_code.items():
            if code == morse:
                text += char
                break
    return text

# 测试
text = 'Hello World'
morse_code_text = encode_morse_code(text)
decoded_text = decode_morse_code(morse_code_text)

print('输入文本:', text)
print('摩尔斯电码:', morse_code_text)
print('解码后文本:', decoded_text)
使用说明
  1. 首先,我们需要定义一个morse_code字典,其中包含了所有字母、数字和标点符号的摩尔斯电码对应关系。
  2. encode_morse_code函数接受一个普通文本作为输入,并将其转换为摩尔斯电码。
  3. decode_morse_code函数接受一个摩尔斯电码作为输入,并将其转换为普通文本。
  4. 你可以通过调用encode_morse_code函数将普通文本转换为摩尔斯电码,并通过调用decode_morse_code函数将摩尔斯电码转换为普通文本。
  5. 在示例中,我们将字符串'Hello World'作为输入,并将其转换为摩尔斯电码。然后再将摩尔斯电码解码为普通文本。

代码中的print语句将会输出如下结果:

输入文本: Hello World
摩尔斯电码: .... . .-.. .-.. --- / .-- --- .-. .-.. -..
解码后文本: HELLO WORLD

以上是一个简单的摩尔斯电码翻译器的介绍,你可以根据自己的需求进行扩展和优化。