Learn String Manipulation by Building a Cipher - Step 79

Tell us what’s happening:

From your new function, return vigenere(message, key) .

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():

        # Append any non-letter character to the message
        if not char.isalpha():
            final_message += char
        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

# User Editable Region

def encrypt(message, key):
    pass
    return vigenere(text, custom_key)

    encryption = vigenere(text, custom_key)
    print(encryption)
    decryption = vigenere(encryption, custom_key, -1)
    print(decryption)

encrypt()


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

the error raised is that you called encrypt without any arguments when it expects 2

return vigenere(text, custom_key)

Doesn’t look like you’ve returned what was asked.

Also, you need to remove pass

and the instructions don’t say anything about calling encrypt() at the end

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