Python 加密中丢失的字母
我的加密几乎正常工作,但不完全正常:Python 加密中丢失的字母,python,encryption,dictionary,Python,Encryption,Dictionary,我的加密几乎正常工作,但不完全正常: d1={'H':'Z','E':'P','l':'O','O':'J'} def encrypt(table,string): encrypted="" for k,v in table.iteritems(): k=string[0:] encrypted+=v return encrypted print encrypt(d1,"HELLO") 它返回“ZPOJ”。它需要返回“ZPOOJ”。我
d1={'H':'Z','E':'P','l':'O','O':'J'}
def encrypt(table,string):
encrypted=""
for k,v in table.iteritems():
k=string[0:]
encrypted+=v
return encrypted
print encrypt(d1,"HELLO")
它返回“ZPOJ”。它需要返回“ZPOOJ”。我如何才能使它工作?
谢谢 看起来有点像家庭作业,所以我会尽量只给出提示 当前代码中的问题:
k=string[0:]
这将在每个循环中获取整个字符串,您可能只需要其中的一个字符。
在任何情况下,都不能在循环中使用k
encrypted+=v
这是您添加到结果中的唯一位置,但您直接从字典值中获取值。最终得到一个包含字典所有值的字符串,而忽略正在加密的明文
您希望在纯文本字符串上循环,并在字典中查找每个字符的对应值。大概是这样的:
for k in string:
encrypted = encrypted + table[k]
请注意,您的字典中有一个小写的L。以下代码有效。您应该循环使用
字符串
,而不是表
。确保字符串中使用的所有字符都定义为表中的键<在d1
中,code>l
替换为l
d1={'H':'Z','E':'P','L':'O','O':'J'}
def encrypt(table,string):
encrypted=""
for c in string:
encrypted+=table[c]
return encrypted
print encrypt(d1,"HELLO")
它返回“ZPOJ”,它需要返回“ZPOJ”。“我是不是遗漏了什么?您的输出和您需要的是相同的。已修复。谢谢,很抱歉。没问题,你可能会得到更多的帮助,以及标记这是写在语言是的,谢谢大家。这是家庭作业,但是老师们的反应真的很慢,我知道我已经接近了,而且应该是周一晚上(还有很多),我明白了,谢谢。这段代码帮助我更好地理解了我在做什么,并帮助我编写了很多我必须为这项任务编写的代码。我很感激你清晰的代码和解释。