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