问题:摩斯密码 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 += charprint(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)
这段代码将输出编码后的消息:-.-- --- ..- -- .- -.. . .. -。
希望以上回答能满足您的需求。如果有任何其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!
|