我和朋友在使用这段代码时遇到了一些麻烦。当我们运行它并键入Morsecode时,它只打印E和T,所以它只读取第一个char。 我们已经尝试重写DECODE段,因为我们认为可能是这样,但经过3次尝试和多次谷歌搜索...我们现在请求大家帮忙
DECODE = {
'.-':'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 main1():
msg1 = raw_input('Input morsecode: ')
for char in msg1:
print DECODE[char.upper()],
if __name__ == "__main__":
main1()
谢谢
答案 0 :(得分:1)
当您获得输入时,您需要将其拆分。比如说,用户输入了:
.- .----
您需要拆分空格,以便获得每个莫尔斯代码字符的列表:
msgChars = msg1.split(" ")
这将输出msgChars作为莫尔斯代码中每个字符的列表:
[".-", ".----"]
答案 1 :(得分:0)
您应该拆分邮件。这是Python 3中的一个例子。没有Python 2随时可用。对不起。
morse_map = {
'.-':'A', '-..':'D', '--.':'G', '.---':'J', '--':'M', '.--.':'P',
'...':'S', '...-':'V', '-.--':'Y', '..---':'2', '...--':'3',
'-....':'6', '----.':'9', '-.-.':'C', '..-.':'F', '..':'I',
'.-..':'L', '---':'O', '.-.':'R', '..-':'U', '-..-':'X',
'-----':'0', '.....':'5', '---..':'8', '-...':'B', '.':'E',
'....':'H', '-.-':'K', '.-':'N', '--.-':'Q', '-':'T', '.--':'W',
'--..':'Z', '.----':'1', '....-':'4', '--...':'7', '//':' '
}
def main():
msg = input('Input morsecode: ')
for char in msg.split(' '):
print(morse_map[char], end="")
if __name__ == "__main__":
main()
输入/输出示例:
Input morsecode: . .. -... // . . .-.
EIB EER