Learn String Manipulation by Building a Cipher - Step 75

Tell us what’s happening:

Describe your issue in detail here.

Your code so far

text = 'Hello Zaira!'
custom_key = 'python'

def vigenere(message, key, direction=1):
    key_index = 0
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    final_message = ''

    for char in message.lower():

/* User Editable Region */

        # Append space to the message
        if char.isalpha() == ' ':
            final_message += char.isalpha()

/* User Editable Region */

        else:        
            # Find the right key character to encode/decode
            key_char = key[key_index % len(key)]
            key_index += 1

            # Define the offset and the encrypted/decrypted letter
            offset = alphabet.index(key_char)
            index = alphabet.find(char)
            new_index = (index + offset*direction) % len(alphabet)
            final_message += alphabet[new_index]
    
    return final_message
    
encryption = vigenere(text, custom_key)
print(encryption)
decryption = vigenere(encryption, custom_key, -1)
print(decryption)

Help here

Your browser information:

User Agent is: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 75

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.

Hello Waswabrian,

The .isalpha() method checks if a provided string or character contains only letters. So what you are doing now is trying to add True to final_message. Instead you just want to add char to the final_message

1 Like

I’m still not getting what you are saying

You don’t have to add isalpha() you only want to add char to final_message.

Still doesn’t work even if i remove it

adding to @HungryBee 's post

@Waswabrian only need if char.isalpha(): remove == ' ' from condition

1 Like

Can you share your latest code?