Learn String Manipulation by Building a Cipher - Step 85

###I have done as asked to replace vigenere with encrypt and decrypt respectively and can’t find the mistake.

f encrypt(message, key):

return encrypt(message, key)

def decrypt(message, key):
return decrypt(message, key, -1)

encryption = encrypt(text, custom_key)
print(encryption)
decryption = decrypt(encryption, custom_key, -1)
print(decryption)

text = 'Hello Zaira!'
custom_key = 'python'

def vigenere(message, key, direction=1):
    key_index = 0
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    final_message = ''

    for char in message.lower():

        # Append any non-letter character to the message
        if not char.isalpha():
            final_message += char
        else:        
            # Find the right key character to encode/decode
            key_char = key[key_index % len(key)]
            key_index += 1

            # Define the offset and the encrypted/decrypted letter
            offset = alphabet.index(key_char)
            index = alphabet.find(char)
            new_index = (index + offset*direction) % len(alphabet)
            final_message += alphabet[new_index]
    
    return final_message

# User Editable Region

def encrypt(message, key):
    return encrypt(message, key)
    
def decrypt(message, key):
    return decrypt(message, key, -1)
    
encryption = encrypt(text, custom_key)
print(encryption)
decryption = decrypt(encryption, custom_key, -1)
print(decryption)

# User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 85

change the vigenere with encrypt and decrypt respectively in the variables encrytrion and dectyption but not in the functions definitions, not in the return statement, also notice here how the decrypt function in its definition takes 2 parameters message and key yet you are calling it with 3 parametrs ancryption , custom_key and -1, remove the -1

try removing the -1 parameter from the decryption variable and retaining the encryption and custom_key only.

1 Like

Do not change vigenere in the return statement. Also remove the -1 in decryption arguments:

solution redacted by mod

It is great that you solved the challenge, but instead of posting your full working solution, it is best to stay focused on answering the original poster’s question(s) and help guide them with hints and suggestions to solve their own issues with the challenge.

We are trying to cut back on the number of spoiler solutions found on the forum and instead focus on helping other campers with their questions and definitely not posting full working solutions.

1 Like