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 行內完成此操作,但它很難閱讀。這是最易讀、最簡潔的方法。
添加回答
舉報