Learn String Manipulation by Building a Cipher - Step 69

Encryption and decryption are opposite processes and your function can do both with a couple of tweaks.

Add a third parameter called direction to your function definition. Also, comment out the last two lines of code to avoid errors in the console.

Your code so far


# User Editable Region

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)
            new_index = (index + offset) % len(alphabet)
            encrypted_text += alphabet[new_index]
    
    return encrypted_text
 
encryption = vigenere(text, custom_key)
print(encryption)

# 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/121.0.0.0 Safari/537.36

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 69

how can we help? 

Add a third parameter called direction to your function definition. :white_check_mark:

Also, comment out the last two lines of code to avoid errors in the console. :x:

you need to put # in front of last two lines (Also, comment out the last two lines of code to avoid errors in the console)

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