Learn String Manipulation by Building a Cipher - Step 63

Tell us what’s happening:

Describe your issue in detail here.

Your code so far

text = 'Hello Zaira'
custom_key = 'python'

def vigenere(text, custom_key):
    key_index = 0
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    encrypted_text = ''
    
    for char in text.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]
    

# User Editable Region

    return encrypted_text
    encryption = vigenere(text, custom_key)

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

Hii @joshmong ,

There are a few issues in the code:

This would help you.

  1. The variable name used inside the vigenere function is custom_key, but you’re trying to access it using key. You need to update the variable name to be consistent.
  2. The return statement is not indented properly. It should be inside the function, but currently, it is outside the function body.
  3. The encryption = vigenere(text, custom_key) line is after the return statement, and it will never be executed. You should move it before the return statement.
1 Like