2011-12-02 60 views
-4

我有一些功课涉及凯撒密码,和我困在这里: 我需要写它得到一个文本(字符串)的功能和字典。字典键是英文ABC,其值是来自ABC的其他字母。 我的目标是翻阅文本,并在任何有字母的地方(只有字母!) 将其更改为属于字典中特定字母的值。切换字母不同的字母串内(凯撒密码)

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

+0

到这样的问题,传统的反应是,“让我们了解您已经完成的工作......” – bgporter

+0

记住,你可以遍历字符串,所以像'“”。加入(C在inputString C) '会产生一个新的字符串(我们在这个例子中并没有做任何交换)。这可能会让你开始。 –

+0

我到目前为止一无所获。我仍然在思考如何将文本移动到列表中,或者其他格式将允许我更改字母。 – Orr

回答

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. 地图()
  3. 如何通过字母串迭代
  4. 如何加入的字母来创建的字符串
  5. 序列
  6. 如何替换字符串中的字符

不以任何特定的顺序,并且不是全部包括在内。或

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

maketrans如果你使用的字节串,如果你的Python是年纪比2.7: