Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python字典'';关键错误_Python - Fatal编程技术网

Python字典'';关键错误

Python字典'';关键错误,python,Python,我在尝试循环浏览字典时遇到了一个关键错误。如果有人能告诉我我做错了什么,那会很有帮助。我正在尝试制作一个基本的“凯撒密码”,一种解码偏移量为13的消息的方法 这是另一种方法,你能给我们一些输入和输出的示例吗?您希望如何处理凯撒词典中未包含的字符: caesar = {'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',

我在尝试循环浏览字典时遇到了一个关键错误。如果有人能告诉我我做错了什么,那会很有帮助。我正在尝试制作一个基本的“凯撒密码”,一种解码偏移量为13的消息的方法


这是另一种方法,你能给我们一些输入和输出的示例吗?您希望如何处理凯撒词典中未包含的字符:

caesar = {'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 caesar_cipher(encoded):
    print("".join(caesar.get(letter, letter) for letter in encoded.lower()))
我想你想要

ceasar = {'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 ceasar_cipher(encoded):
    encoded = encoded.lower()
    decoded = ""
    for letter in encoded:
        if letter in ceasar.keys():
            decoded += ceasar[letter]
        else:
            decoded += letter
    print decoded

这将保留空格、标点符号和任何其他不在翻译指令中的字符。

您用什么调用函数?我假设正在传递的单词中有空格,并且在查找dict
caesar
中没有
'
-因此出现了关键错误。请尝试将第一个赋值更改为
encoded=encoded.lower().strip()
仅供参考,Python包含一个:
导入编解码器;打印(codecs.encode(message,'rot_13'))
caesar.get(letter,letter)
使得
如果字母在…
中,那么就不需要了。很好的观点@AChampion谢谢!我后来添加了编辑,但忘记了取出第一张支票。修复了一个paren问题,并添加了
.lower()
ceasar = {'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 ceasar_cipher(encoded):
    encoded = encoded.lower()
    decoded = ""
    for letter in encoded:
        if letter in ceasar.keys():
            decoded += ceasar[letter]
        else:
            decoded += letter
    print decoded