I seriously have no idea what is wrong with my code?
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):
encryption = vigenere(text, custom_key)
print(encryption)
decryption = vigenere(encryption, custom_key, -1)
print(decryption)
print(vigenere(message,key))
# 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/128.0.0.0 Safari/537.36 Edg/128.0.0.0
Challenge Information:
Learn String Manipulation by Building a Cipher - Step 84
but it didn’t work, all I understood was to delete pass, which I already did a long time ago.
At this point I’m just staring at the computer trying random changes
notice how it say “should return”
no, return does not mean print, return means return, it’s an important part of functions, and it was introduced in step 67, you may want to go back there and review
OH, yeah I remembered the return function, but when I tried typing in this,
def encrypt(message,key):
vigenere(message,key)
return encrypt(text,custom_key)
it said “Your code raised an error before any tests could run”
Ah, never mind, it turns out I accidentally wrote encrypt() at the very bottom of the code, then I tried this,
def encrypt():
vigenere(message,key)
return vigenere(message,key)
and it worked. Tysm for ur help, I couldn’t have done it without you