error showed 我在尝试循环字典时遇到了一个关键错误。如果有人能告诉我我做错了什么,那将会很有帮助。我正在尝试制作一个基本的" Caesar密码",一种解码偏移量为13的消息的方法。:)
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 == "?" or letter == "!":
decoded += letter
for letter in encoded:
ceasar[letter] += decoded
print decoded
答案 0 :(得分:0)
这是另一种方法,你能给我们一些样本输入和输出吗?你想对你的凯撒字典中没有的字符做什么:
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()))
答案 1 :(得分:0)
我想你想要
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
这会保留空格,标点符号以及翻译字典中没有的任何其他字符。