微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何正确使用模和字符串来翻译加密的句子?

如何解决如何正确使用模和字符串来翻译加密的句子?

我正在使用 python 在 codeacademy.com 上开发一个项目。我必须使用“凯撒密码”来翻译加密的单词。我已经有了答案,但我不明白。 如下所示:

translated_message +=alphabet[(letter_value + 10) % 26]

+10 用于字母的移位,但为什么要取模 26? 我用减法进行了测试,它也有效。在这两种方式中,我都不明白为什么有必要以及模数做什么?

感谢您的帮助!

alphabet = "abcdefghijklmnopqrstuvwxyz"
punctuation = ".,?'! "
message = "xuo jxuhu! jxyi yi qd unqcfbu ev q squiqh syfxuh. muhu oek qrbu je tusetu yj? y xefu ie! iudt cu q cuiiqwu rqsa myjx jxu iqcu evviuj!"
translated_message = ""
for letter in message:
    if not letter in punctuation:
        letter_value = alphabet.find(letter)
        translated_message += alphabet[(letter_value + 10) % 26]
    else:
        translated_message += letter
print(translated_message)

解决方法

letter_value +10 可以超过字母数组中的索引。 Mod包装它。谷歌“模运算”。

https://en.wikipedia.org/wiki/Modular_arithmetic

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。