使用字典和isspace函数的小问题

时间:2016-08-08 18:58:26

标签: python whitespace ordereddictionary

这是我的简单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()

1 个答案:

答案 0 :(得分:1)

将第if ch in key.isspace():行更改为if ch.isspace():