python中的加法密码系统

python中的加法密码系统,python,Python,因此,我对python相当陌生,我尝试编写一些程序进行练习。 今天我开始研究一种加法密码系统,这是我在一本书中学到的。我写了代码。老实说,它相当糟糕。replace用第二个参数替换第一个参数的所有实例。如果我们分步进行,我们就能看到真正发生了什么。这是一个极好的机会,让您学习如何使用调试器逐步完成代码。这个例子很简单,但未来的项目可能很难找到这样的问题。知道如何使用调试器是一项非常有价值的技能 v表示在该步骤中for循环的位置 1. Original: plain = hello

因此,我对python相当陌生,我尝试编写一些程序进行练习。
今天我开始研究一种加法密码系统,这是我在一本书中学到的。我写了代码。老实说,它相当糟糕。replace用第二个参数替换第一个参数的所有实例。如果我们分步进行,我们就能看到真正发生了什么。这是一个极好的机会,让您学习如何使用调试器逐步完成代码。这个例子很简单,但未来的项目可能很难找到这样的问题。知道如何使用调试器是一项非常有价值的技能

v表示在该步骤中for循环的位置

1. Original: plain = hello 
                             v
2. Replace h with k: plain = kello
                              v
3. Replace e with h: plain = khllo
                               v
4. Replace l with o: plain = khooo <-- Because you replaced ALL l's with o's.
                                v
5. Replace o with r: plain = khrrr <-- Again, because you replaced ALL o's with r's.
                                 v
6. Replace r with u: plain = khuuu <--- Final result
那么你如何修复它呢?因为字符串是不可变的,所以不能就地更改它们。。。但是你可以更改列表!作为奖励,您可以像处理字符串一样迭代列表

plain=listinpunter以小写形式输入明文:
printplane好吧,我不知道,但从阅读ord开始,以摆脱26个测试和硬编码表查找chr。获取字符代码,减去ord'a'得到0->25的值。从那里开始工作。你可以从codereview或其他我在一本书中了解到的关于Cesar cipher的问题,这本书是否已经涵盖了这个问题?哦,现在我明白了,如果你觉得这个答案不错,你可以接受@伊利亚桑盖利斯