如何用Python编写一个函数来解密摩斯电码?
时间: 2024-12-18 21:33:21 浏览: 8
在Python中编写一个解密摩斯电码的函数,通常需要创建一个字典将摩尔斯电码字符与其对应的字母对应起来,然后逆向操作这个过程。这里是一个简单的示例:
```python
# 定义摩尔斯电码字典
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', ' ': ' ', '0': '.----', '1': '..---', '2': '...--',
'3': '....-', '4': '.....', '5': '-....', '6': '--...', '7': '---..',
'8': '----.', '9': '-----'
}
def decrypt_morse(morse_code):
def decipher(code):
return morse_code_dict.get(code, '')
words = morse_code.split(' ') # 摩斯电码单词之间通常用两个空格分隔
decrypted_message = ''.join(decipher(word) for word in words)
return decrypted_message
# 使用函数
encrypted_morse = ".... . .-.. .-.. --- / .-- --- .-. .-.. -.."
decrypted_message = decrypt_morse(encrypted_morse)
print(f"Decrypted message: {decrypted_message}")
```
在这个例子中,`decrypt_morse` 函数接收加密的摩斯电码字符串,将其分割成单词,并通过 `decipher` 内部函数查找每个单词对应的字母。如果找到则拼接在一起返回。
阅读全文