1 回答
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 行内完成此操作,但它很难阅读。这是最易读、最简洁的方法。
添加回答
举报