为了账号安全,请及时绑定邮箱和手机立即绑定

如何缩短正文中解释的程序?

如何缩短正文中解释的程序?

慕莱坞森 2023-08-22 16:50:54
我正在制作一个简单的 python 项目来加密消息。在我分享我想缩短的内容之前,这里是我用于解密消息的代码的链接(我需要帮助): https://www.sendspace.com/file/jji74r我的问题是我不知道如何在不需要 25 行代码的情况下读取消息,该程序测试 25 个字符的加密消息,因此如果我想测试 30 个字符的加密文本,我还需要 5 行代码。有什么方法可以减小程序任何部分的大小吗?
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

你可以用一些嵌套循环来做到这一点 -


INCREMENT = 3

ALPHABET = "abcdefghijklmnopqrstuvwxyz"

BEM_LENGTH = 25


#data needed from user to decrypt a message encrypted via BEM

BEM = input("Please input your BEM key: ")

message = input("please input the message you wish to decrypt (up to 26 characters): ")


# processing

for i in range(0, len(message)//INCREMENT):

    mess = message[(i*INCREMENT):(i+1)*INCREMENT]

    for j in range(0, BEM_LENGTH):

        bem = BEM[(j*INCREMENT):(j+1)*INCREMENT]

        if mess == bem:

            print(ALPHABET[j], end="")

print()


我注意到值的变化始终是 3,因此我将 INCRMENT 设置为 3。我还需要字母表。我放入了一个 BEM_LENGTH 常量,以便您可以轻松更改它。


之后,我得到了输入。


然后,我循环遍历该消息,增量为 3,就像您硬编码的那样。然后,我循环遍历 BEM 密钥并对其进行比较,类似于您的 if 语句。然后,如果它们匹配,我就打印字母表中的正确字符。如果您需要更多帮助,我可以给您发送电子邮件或在 Discord 上聊天(如果您需要帮助)!


我可以使用列表理解在大约 4 行内完成此操作,但它很难阅读。这是最易读、最简洁的方法。


查看完整回答
反对 回复 2023-08-22
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信