Learn String Manipulation by Building a Cipher - Step 86

Tell us what’s happening:

“Next, modify your encryption and decryption variables by calling encrypt and decrypt, respectively, in place of vigenere.”
this the task for this step
but my code doesn’t pass because it raised an error before the tests could run, so can i please get some guidance as to what i should be doing ?

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

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 86

Welcome to the forum @aditibiswal2004

You have a typo.

encrYPt not encrPYt

You can also check the console for errors.

image

Happy coding

1 Like

removed solution code

Please, stop adding solutions to old threads.

Do not put solution code on the forum.