Learn String Manipulation by Building a Cipher - Step 68

Tell us what’s happening:

Im not sure where my code is failing, is it the “return encryption” or just the whole thing?

Your code so far

text = 'Hello Zaira'
custom_key = 'python'
encryption = ("text", "custom_key")
def vigenere(message, key):
    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

# User Editable Region

        
        vigenere(text, custom_key)
    return 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/129.0.0.0 Safari/537.36

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 68

Have you created a variable called encryption? Check the last instruction.

text = 'Hello Zaira'
custom_key = 'python'
encryption = 'text' + 'custom_key'
def vigenere(message, key):
    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

like this yes

sorry for the code not formatting into the reply properly

I’ve edited your post to improve the readability of the code. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.

You can also use the “preformatted text” tool in the editor (</>) to add backticks around text.

See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (').

Step 68
Call your function

How would you call the function?

thank you for showing me that

vigenere(text, custom_key) ?

text = 'Hello Zaira'
custom_key = 'python'
encryption = 'text' + 'custom_key'
def vigenere(message, key):
    key_index = 0
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    encrypted_text = ''
    encryption = 
    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]
            vigenere = (text, custom_key)
    
    return encryption

this is what I’ve got at the moment
I think i either don’t need the “encryption” under my defining variables OR it should = “vigenere” but either way i still am missing something.
I’ve been reading through " Python Conditions " but am still missing something

Yes :+1: But you will do this outside your function, not within it. After you define it. Define the function, then call it:

def function():
    code
    code

function()

To assign the returned value of a function call to a variable would use this syntax:

variable = function(arg1, arg2)

Thank you! that helped so much, and I finally got it

1 Like