Отсутствует 1 обязательный позиционный аргумент: шифрование «ключ» - PullRequest
1 голос
/ 05 февраля 2020
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' \

Не могу понять, что я делаю неправильно

1 Ответ

1 голос
/ 05 февраля 2020

def encryptDecrypt(alphabet,mode,message,Key,final = ""): ожидает 4 аргумента с пятым необязательным.

Вы называете его только тремя: encryptDecrypt(cryptMode, startMessage, rotKey), пропуская alphabet.

Исправлено:

encryptDecrypt(alphabet, cryptMode, startMessage, rotKey)

...