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