|
发表于 2023-8-9 23:18:21
|
显示全部楼层
问题:摩斯密码 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': '----.'
- }
复制代码
问题1:解码器
基于一个或多个 while 循环,我们可以编写一个解码器,将莫尔斯电码消息解码为字符串。这里假设输入的电码消息中的字母和数字之间都用空格分隔,并且单词之间用三个空格分隔。
- q9_input_i = "-.-- --- ..- ..--. .. -. .. ... .... . -.. .----###"
- output9_i = ""
- current_word = ""
- # 解码器
- for char in q9_input_i:
- if char == ' ':
- if current_word in MORSE_CODE:
- output9_i += MORSE_CODE[current_word]
- else:
- output9_i += current_word # 保留未知字符
- current_word = ""
- elif char == '#':
- output9_i += ' ' # 添加一个空格表示单词结束
- else:
- current_word += char
- print(output9_i)
复制代码
这段代码将输出解码后的消息:YOU MADE IT。
问题2:编码器
基于一个或多个 while 循环,我们可以编写一个编码器,将纯文本消息转换为莫尔斯电码。在这里,我们假设输入的纯文本消息中只包含大写字母。
- q9_input_ii = "YOU MADE IT"
- output9_ii = ""
- for char in q9_input_ii:
- if char in MORSE_CODE:
- output9_ii += MORSE_CODE[char] + ' ' # 添加一个空格表示字母结束
- elif char == ' ':
- output9_ii += ' ' * 3 # 添加三个空格表示单词结束
- print(output9_ii)
复制代码
这段代码将输出编码后的消息:-.-- --- ..- -- .- -.. . .. -。
希望以上回答能满足您的需求。如果有任何其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!  
|
|