你如何在python中阅读和打印整个sting

时间:2015-09-27 20:12:59

标签: python

我和朋友在使用这段代码时遇到了一些麻烦。当我们运行它并键入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()

谢谢

2 个答案:

答案 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