将字母切换为字符串内的不同字母(Caesar密码)

时间:2011-12-02 16:44:13

标签: python string encryption

我有一些涉及凯撒密码的作业,我被困在这里: 我需要编写一个获取文本(作为String)和字典的函数。字典键是英文ABC,其值是来自ABC的其他字母。 我的目标是翻阅文本,无论哪里有一封信(只有字母!) 将其更改为属于字典中特定字母的值。

编辑:我的函数应该将解密的文本作为字符串返回。

3 个答案:

答案 0 :(得分:3)

您正在寻找translate方法:

>>> u"abc".translate({ord('a'): u'x', ord('b'): u'y', ord('c'): u'z'})
'xyz'

如果您使用的是字节串,或者您的Python超过2.7,请查看maketrans

答案 1 :(得分:2)

一点伪代码(语言不可知)。你应该可以从这里拿走它。

cipher = array
caesar_mask = [ A: G, ... , Z: F ] 

for each letter_index in text
    cipher_letter = caesar_mask[text[letter_index]]
    cipher[] = cipher_letter
end

答案 2 :(得分:2)

第一个问题是你是否必须这样做。

然后我会研究这些事情:

  1. list comprehension
  2. 地图()
  3. 如何遍历字符串中的字母
  4. 如何加入一系列字母来创建字符串
  5. 如何替换字符串中的字符
  6. 没有任何特定的顺序,也没有包含所有内容。