Learn String Manipulation by Building a Cipher - Step 38

Tell us what’s happening:

Please help me to explain the result of encrypted text print. I do not understand!
char: h encrypted text: k
char: e encrypted text: kh
char: l encrypted text: kho
char: l encrypted text: khoo
char: o encrypted text: khoor
char: encrypted text: khoorc
char: w encrypted text: khoorcz
char: o encrypted text: khoorczr
char: r encrypted text: khoorczru
char: l encrypted text: khoorczruo
char: d encrypted text: khoorczruog

Your code so far

text = 'Hello World'
shift = 3
alphabet = 'abcdefghijklmnopqrstuvwxyz'
encrypted_text = ''

# User Editable Region

for char in text.lower():
    index = alphabet.find(char)
    new_index = index + shift
    encrypted_text = encrypted_text + alphabet[new_index]
    print('char:', char, '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/136.0.0.0 Safari/537.36

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 38

Can you what about it that you do not understand?

Example: char: h encrypted text: k
We have:
The variable name declared encrypted_text = ’ ’
and in the loop body, encrypted_text = encrypted_text + alphabet[new_index]
The result shows char: h means that new_index = 7 + 3 = 10 → alphabet = k
Which number for encrypted_text = ’ ’ we should add to have the result of encrypted_text = k and so on?

That’s all correct

Yes. Then which number for encrypted_text = ’ ’ we should add to have the result of encrypted_text = k and so on? I don’t get that

Letters are added to encrypted_text, not numbers

Ahh, okay I understand now. Thanks :grinning_face: