gpt4 book ai didi

python - 凯撒密码查询

转载 作者:太空宇宙 更新时间:2023-11-03 17:15:08 24 4
gpt4 key购买 nike

好吧,这就是我的代码,它的问题是,当我选择解密选项时,我似乎无法让它返回到原始形式,而且我不确定它出了什么问题。我想知道你们是否可以给我一些指示,告诉我出了什么问题以及我应该做什么?这是我的代码:

Choice = input("Would you like to decrypt or encrypt a message?\nPlease enter 'E' or 'D': ")
Message = input("Enter text to Cipher: ")
Offset = int(input("Please enter your offset: "))
Encrypt = ''
Decrypt = ''

if (Choice == 'e') or (Choice == 'E'):
for character in Message:
x = ord(character) - 32
Encrypt += chr(((Offset + x) % 94) + 32)
print(Encrypt)
if (Choice == 'd') or (Choice == 'D'):
for character in Message:
x = ord(character) - 32
Decrypt += chr(((Offset - x) % 94) + 32)
print(Decrypt)

最佳答案

问题出在这一行:

Decrypt += chr(((Offset - x) % 94) + 32)

我不确定你从哪里得到(Offset – x);您想要反转加密过程应用的偏移量,因此这一行应该是:

Decrypt += chr(((x - Offset) % 94) + 32)

您可能需要将加密行调整为对称。

<小时/>

其他一些快速评论:

  • 您可以像这样整理 if 分支:

    if choice.lower() == 'e':
    elif choice.lower() == 'd':

    您可能需要考虑用户键入 E 或 D 以外的内容的情况。

  • Python 风格指南是 PEP 8 – 一般来说,变量名称应该是snake_case。类 (CamelCase) 和常量 (UPPERCASE) 除外。

  • 你为什么要使用 mod 94,或者调整 32 位,这并不明显。如果您的代码包含解释此行的注释,将会很有用。

  • 为了减少代码重复,您可能需要将偏移代码包装在函数中。然后你可以这样调用它:

    encrypted_message = offset(message, places= 3)
    decrypted_message = offset(message, places=-3)

    它还可以免费为您提供加密/解密的对称性,只需翻转偏移量的符号即可。

关于python - 凯撒密码查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33720819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com