Learn String Manipulation by Building a Cipher - Step 85

Tell us what’s happening:

Describe your issue in detail here.
hellow world!! :grinning:
i need help whit htis code i have done wath sthet in description:

Next, modify your encryption and decryption variables by calling encrypt and decrypt , respectively, in place of vigenere .
i have done it but from some reason when i tap decrypt it’s make a eror
i have troaie the text vigenere from the return with the (enrypt, decrypt )to make dose not work

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
            # 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)
decryption = decrypt(encryption, custom_key, -1)

# 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/ Safari/537.36

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 85

1 Like

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!

Hello @remuschilom1489,
You did it correct but you dont need! -1


Can you explain why they don’t need to put -1 there? It would be helpful

in previous lessons I was asked to put a -1 then i l

You are calling the decrypt function. You can see the decrypt function only takes 2 arguments.

1 Like

i solve it was a mistake von program
decryption = decrypt(encryption, custom_key, -1)
then i have -1end (,) deleted und its work my question is whi the programhe didn’t tell me to remove this a few lessons before and he didn’t even guide me, maybe it’s a small bug that can be fixed

thanks this -1 was the problem


def decrypt(message, key):

decrypt does not have a direction parameter

the -1 was useful when you were calling vigenere, see that vigenere has three parameters. It is only this step that you are calling decrypt, and decrypt takes only 2 arguments (it has only 2 parameters)

@MrSanyi When you delete your comments like this it makes it hard for others to follow the flow of conversation if they are trying to figure out the same problem.

It’s ok to be wrong sometimes, you are learning. There’s no penalty, you don’t lose any points. Don’t worry about it. Generally, I would say it’s actually better to just admit a mistake instead of trying to hide it. You can learn from it and others can learn from it as well.

If you really want to contribute to the forum and learn, take some time to research the question and make sure you fully understand it. Don’t rush to answer. You will learn more and you will be better at helping others.


@pkdvalis I really apologize because i removed the comment.
I have seen that i was wrong and try to hide it.
But, You have told me that mistake is good and it makes us to learn something.
I will try to decrease my rushing behavior as much as i can.

Thank you!