Learn String Manipulation by Building a Cipher - Step 63

Tell us what’s happening:

Describe your issue in detail here.
My code does not pass and i dont understand why.Any tips?
the error is 'You should call vigenere passing text and custom_key as the arguments. ’

Your code so far

text = 'Hello Zaira'
custom_key = 'python'

def vigenere(message, key):
    key_index = 0
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    encrypted_text = ''

    for char in message.lower():
    
        # Append space to the message
        if char == ' ':
            encrypted_text += char
        else:        
            # Find the right key character to encode
            key_char = key[key_index % len(key)]
            key_index += 1

            # Define the offset and the encrypted letter
            offset = alphabet.index(key_char)
            index = alphabet.find(char)
            new_index = (index + offset) % len(alphabet)
            encrypted_text += alphabet[new_index]
    
     return encrypted_text
vigenere (text ,custom_key )
ecryption = return vigenere

/* User Editable Region */



/* 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/120.0.0.0 Safari/537.36

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 63

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.

You should assign the function call to encryption. return can be used only inside a function.

i do not understand what i should do

assign the function call to the variable

i called vigenere like this and it still doesnt work vigenere (text,custom key)

there shouldn’t be a space between the function name and the round parenthesis. Please also show the rest of the code

text = 'Hello Zaira'
custom_key = 'python'

def vigenere(message, key):
    key_index = 0
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    encrypted_text = ''

    for char in message.lower():
    
        # Append space to the message
        if char == ' ':
            encrypted_text += char
        else:        
            # Find the right key character to encode
            key_char = key[key_index % len(key)]
            key_index += 1

            # Define the offset and the encrypted letter
            offset = alphabet.index(key_char)
            index = alphabet.find(char)
            new_index = (index + offset) % len(alphabet)
            encrypted_text += alphabet[new_index]
    
     return encrypted_text
vigenere(text,custom key)
encryption= 

this is all the code and i have the same issue
You should call vigenere passing text and custom_key as the arguments.

why do you have encryption = alone on its own line? you can’t write an assignment operator without writing something to the right of it

ik i had encryption= return vigenere but i think its wrong and the issue is still the calling of the function

you can’t use return outside a function, and you don’t need it to call the function

function():
    return "Hello"

print(function())
a = function()
print(a)

To call a function, just type it’s name and parentheses.

The return statement in the function defines the output of the function. You can imagine the return value replacing the name of the function in the code where it is called.

print(function())

This will print "Hello" because I called function() and it will return "Hello" into the print statement.

a = function()

You can imagine this line transforming into

a = "Hello"

because function() will return "Hello"

im have trouble too not understanding what you mean he

If you have a question about a specific challenge as it relates to your written code for that challenge and need some help, click the Ask for Help button located on the challenge (it looks like a question mark). This button only appears if you have tried to submit an answer at least three times.

The Ask for Help button will create a new topic with all code you have written and include a link to the challenge also. You will still be able to ask any questions in the post before submitting it to the forum.

Thank you.

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