这是我的简单Caesar密码风格程序的代码。
否则它可以正常工作,但它无法识别用户编写的单词之间的潜在空格。
虽然程序正确地翻译了字母本身,但它会将所有字符聚集在一起形成一个单词,省略空格。
我试图自己解决这个问题,但程序会写错误代码:
“AttributeError: 'dict' object has no attribute 'isspace'
”。
还有其他办法吗?
key = {'a':'n', 'b':'o', 'c':'p', 'd':'q', 'e':'r', 'f':'s', 'g':'t',
'h':'u', 'i':'v', 'j':'w', 'k':'x', 'l':'y', 'm':'z', 'n':'a',
'o':'b', 'p':'c', 'q':'d', 'r':'e', 's':'f', 't':'g', 'u':'h',
'v':'i', 'w':'j', 'x':'k', 'y':'l', 'z':'m', 'A':'N', 'B':'O',
'C':'P', 'D':'Q', 'E':'R', 'F':'S', 'G':'T', 'H':'U', 'I':'V',
'J':'W', 'K':'X', 'L':'Y', 'M':'Z', 'N':'A', 'O':'B', 'P':'C',
'Q':'D', 'R':'E', 'S':'F', 'T':'G', 'U':'H', 'V':'I', 'W':'J',
'X':'K', 'Y':'L', 'Z':'M'}
def change(message, new_message):
for ch in message:
if ch in key:
new_message += key[ch]
if ch in key.isspace():
new_message += " "
return new_message
def main():
print
message = input("Type your message here.\n")
new_message = ""
print(change(message, new_message))
main()
答案 0 :(得分:1)
将第if ch in key.isspace():
行更改为if ch.isspace():