Learn String Manipulation by Building a Cipher - Step 85

Tell us what’s happening:

Describe your issue in detail here.
I have changed the variables to encrypt and decrypt but my code still will not pass.

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 = 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/122.0.0.0 Safari/537.36

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 85

You appear to have created this post without editing the template. Please edit your post to Tell us what’s happening in your own words.
Learning to describe problems is hard, but it is an important part of learning how to code.
Also, the more you say, the more we can help!

Hi @ahenry36

You defined decrypt to take two parameters.

Happy coding

I still can not get this problem solved. Iv have tried changing the parameters and still nothing will work.

You defined decrypt to take 2 parameters but you call decrypt with 3 arguments.

If the instructions don’t say to change the parameters, don’t. (Change the arguments though)

And to clarify you define a function with parameters:

def function(param1, param2):

And you call it with corresponding arguments:

function(arg1, arg2)

Please share your updated code.

The instructions should tell you to remove the 3rd argument.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.