【问题标题】:Missing 1 required positional argument: 'Key' Encryption缺少 1 个必需的位置参数:“密钥”加密
【发布时间】:2020-05-21 07:42:54
【问题描述】:
alphabet = ' abcdefghijklmnopqrstuvwxyz'
cryptMode = input("[E]ncrypt|[D]ecrypt: ").upper()
if cryptMode not in ['E','D']:
    print("Error: mode is not Found!"); raise SystemExit
startMessage = input("Write the message: ").upper()
try:rotKey = int(input("Write the key: "))
except ValueError: print("Only numbers!"); raise SystemExit
def encryptDecrypt(alphabet,mode,message,Key,final = ""):
    for c in message:
        if mode == 'E': 
            final += alphabet[(alphabet.index(c) + Key)%(len(alphabet))]
        else: 
            final += alphabet[(alphabet.index(c) - Key)%(len(alphabet))]
    return final
print("Final message:",encryptDecrypt(cryptMode, startMessage, rotKey))

收到此错误

print("最终消息:",encryptDecrypt(cryptMode, startMessage, rotKey)) TypeError: encryptDecrypt() 缺少 1 个必需的位置参数:'Key'\

无法理解我做错了什么

【问题讨论】:

    标签: python encryption caesar-cipher


    【解决方案1】:

    def encryptDecrypt(alphabet,mode,message,Key,final = ""): 需要 4 个参数和第五个可选参数。

    您只需三个调用它:encryptDecrypt(cryptMode, startMessage, rotKey),缺少alphabet

    更正:

    encryptDecrypt(alphabet, cryptMode, startMessage, rotKey)

    【讨论】:

    • 现在它说 print("Final message:",encryptDecrypt(alphabet, cryptMode, startMessage, rotKey)) File "Casesar.py", line 11, in encryptDecrypt final += alphabet[(alphabet .index(c) + Key)%(len(alphabet))] ValueError: substring not found
    猜你喜欢
    • 2019-09-09
    • 2020-11-25
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 2017-03-27
    相关资源
    最近更新 更多