Learn String Manipulation by Building a Cipher - Step 49

Tell us what’s happening:

Answer:
I define a function : def caesar():
After the start of the new line I left the space for identation of alphabet and encrypted_text in the body of the function
And the rest of the code it’s the same but I keep obtain an error, I don’t understand where I’m wrong.

Your code so far


# User Editable Region

text = 'Hello Zaira'
shift = 3
def caesar():
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    encrypted_text = ''

for char in text.lower():
    if char == ' ':
        encrypted_text += char
    else:
        index = alphabet.find(char)
        new_index = (index + shift) % len(alphabet)
        encrypted_text += alphabet[new_index]
print('plain text:', text)
print('encrypted text:', encrypted_text)

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

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 49

Welcome to the forum @aiello628

Here is a recent post you may find helpful.

Happy coding

What error? Please share any error or hints.

What are you you trying to do?

Similar question was discussed via the following URL.
https://forum.freecodecamp.org/t/learn-string-manipulation-by-building-a-cipher-step-49/719371

  1. Your code raised an error before any tests could run. Please fix it and try again.
    pass

But in the first part of code I should write the function and then use the lines after the third as function arguments.
Should I also try to put in the body function the cycle FOR ?

When you define a function and declare some variables in it, those variables are only accessible within the function.

If your for loop tries to access variables that are in the function, it will not be able to find them.

Definitely a good idea. The instructions are serious when they say “all” the lines as well:

indent all the following lines

1 Like