Learn String Manipulation by Building a Cipher - Step 75

Tell us what’s happening:

I have tried modifying the if statement, but it still does not pass . What should i do?

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

/* 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)

Your browser information:

User Agent is: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

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 darlene,

So the .isalpha() method returns True if all characters are letters. So instead of having to check if a character is a space, we’re just going to check if the character is a letter in general. Hence you won’t need to check if it’s a space anymore.

1 Like

thank you
Have done the modification, it passes

2 Likes

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