在字符串中将字母替换成其他字母(凯撒密码)

-4 投票
3 回答
841 浏览
提问于 2025-04-17 07:33

我有一些关于凯撒密码的作业,但在这里遇到了困难:我需要写一个函数,这个函数接收一段文本(作为字符串)和一个字典。这个字典的键是英文字母表的字母,而它的值是字母表中的其他字母。我的目标是遍历这段文本,遇到字母(只处理字母!)时,将其替换为字典中对应字母的值。

补充说明:我的函数应该返回解密后的文本,格式也是字符串。

3 个回答

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

第一个问题是你是否需要在原地进行操作。

接下来我会考虑这些内容:

  1. 列表推导式
  2. map()函数
  3. 如何遍历字符串中的字母
  4. 如何将一串字母连接起来形成字符串
  5. 如何替换字符串中的字符

这些内容没有特定的顺序,也不一定全部都要考虑。

3

你在找的是 translate 这个方法:

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

如果你在使用字节字符串,或者你的Python版本低于2.7,可以看看 maketrans

撰写回答