我做了一个莫尔斯电码翻译,你可以把一个字母打印出相应的代码,反之亦然。然而,这个程序一次只接受一封信。我怎样才能让它接受一个词?这是我的密码:
MorseCode = {'.-':'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',
'.----':1,
'..---':2,
'...--':3,
'....-':4,
'.....':5,
'-....':6,
'--...':7,
'---..':8,
'----.':9,
'-----':0
}
letters_to_morse = {letter: code for code, letter in MorseCode.items()}
print "Type 'help' for the morse code."
print "Type 'end' to exit the program.\n"
while True:
code = raw_input("Enter code:")
if code in MorseCode:
print MorseCode[code]
elif code in letters_to_morse:
print letters_to_morse[code]
问题是:有没有办法输入一个单词,然后将该单词拆分为每个字母,这样每个字母就可以成为字典的一个键来打印出值? 示例:单词“boy”将被拆分为“b”、“o”、“y”,然后程序将打印出来:-。。。----。--
到目前为止我尝试的是:
MorseCode = {'.-':'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',
'.----':1,
'..---':2,
'...--':3,
'....-':4,
'.....':5,
'-....':6,
'--...':7,
'---..':8,
'----.':9,
'-----':0
}
Inverse_Dictionary = {v:k for k,v in Dictionary.iteritems()}
while True:
x = raw_input("Enter:")
for letter in list(x):
if letter in Dictionary:
print (Dictionary[letter])
elif letter in Inverse_Dictionary:
print(Inverse_Dictionary[letter])
else:
print("Not good")
成功了。当我输入“男孩”时,它打印出来:-。。。----。--但当我试图进入-。。。----.-,它不断打印出“不好”
谁能告诉我哪里出错了?你知道吗
我会尝试以下方法:
list(x)返回键入字符的列表。所以呢
会回来的
你需要一种使你的意见多样化的方法。例如,在每个字母/莫尔斯电码之间留一个空格,然后执行以下操作:
改变
至
还有
Inverse_Dictionary = {v:k for k,v in Dictionary.iteritems()}
,但是Dictionary
没有定义,应该是Inverse_Dictionary = {v:k for k,v in MorseCode.iteritems()}
相关问题 更多 >
编程相关推荐