Learn String Manipulation by Building a Cipher - Step 66

Tell us what’s happening:

I have tried many times and also asked chatGPT for help, but I am getting error:

Sorry, your code does not pass. Keep trying.

You should multiply offset by direction in the new_index assignment.

Your code so far

text = 'Hello Zaira'
custom_key = 'python'

def vigenere(message, key, direction):
    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)

/* User Editable Region */
#I have also tried with (offset * direction)
            new_index = (index + (offset * direction)) % len(alphabet)

            encrypted_text += alphabet[new_index]

/* User Editable Region */

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

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 66

Hey, here you are required to do exactly what the description says, nothing more. Tests do not pass because you did multiply offset by direction, but you did also something else.

Thank you for your answer.
When I do: new_index = (offset * direction) or
new_index = offset * direction
I get same error

You can see it here in this screenshot:

do not delete anything, just add the multiplication inside the existing line, and do not add parenthesis

Thank you, that helped:

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