Learn String Manipulation by Building a Cipher - Step 49

Tell us what’s happening:

It keeps saying you should use def keyword to declare a new function.
What am I doing wrong

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]

Your code so far


# User Editable Region

text = 'Hello Zaira'
shift = 3
    def caesar(def):
    
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 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Safari/605.1.15

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 49

Hi @Xara,

Your function line should not be indented (no spaces before it). There is also no requirement for def in casar(def). Also, make sure everything below def caesar(): is indented properly (adding at least 4 spaces at the beginning of each line).

I hope this helps. Happy coding!

Indent your else statement to align with your if statement.

1 Like