Learn String Manipulation by Building a Cipher - Step 67

Tell us what’s happening:

It says I should have an encryption variable although I already have it added

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

# User Editable Region

    return encrypted_text
    encryption = vigenere(text, custom_key)
    return encryption

# User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; WOW64; x64; rv:109.0) Gecko/20100101 Firefox/115.0 WebExplorer/16.4.5262.0

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 67

These lines are indented to be part of the function, but they shouldn’t be. Your function ends on the line

return encrypted_text

After that you should remove the indentation.

You don’t need this line:

return encryption

return is only used to exit a function and return a value, you don’t need it here.

1 Like