Learn String Manipulation by Building a Cipher - Step 68

Tell us what’s happening:

It says i should have an encryption variable, how do i do that please?

Your code so far


# User Editable Region

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 = encrypted_text

# 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 68

You have an encryption variable here. It’s indented to be part of the function, however it comes directly after a return which means it will never, ever execute.

1 Like

Should i delete the return value please?

The instructions don’t mention that, no.

Could you move those lines somewhere that they will execute?

Are they supposed to be part of the function or outside the function?

Inside the function, i think

Call your function passing text and custom_key as the arguments.

You want to call the function from inside the function? This will create a recursive function, is that what you’re trying to do?