Learn String Manipulation by Building a Cipher - Step 86

Tell us what’s happening:

i keep on adding the line to the variables but i dont know why it wont work. Can I get some help?

Your code so far

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 vigenere(message, key)
    encryption = encrypt(text, custom_key)
def decrypt(message, key):
    return vigenere(message, key, -1)
    decryption = decryption(encryption, custom_key)
encryption = vigenere(text, custom_key)
print(encryption)
decryption = vigenere(encryption, custom_key, -1)
print(decryption)

# User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (X11; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 86

Reset this step and try again. The instructions are not asking you to add encryption and decryption variables inside the function. They are asking you to change the assignment for the existing encryption and decryption variables