[python] Caesar Cipher Function in Python

This solution is more intuitively without the use of ord function:

def caesar_cipher(raw_text, key):
    alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    shifted_alphabet = alphabet[26-key:]+alphabet[0:(26-key)]
    cipher_text = ""
    for i in range(len(raw_text)):
        char = raw_text[i]
        idx = alphabet.find(char.upper())
        if idx == -1:
            cipher_text = cipher_text + char
        elif char.islower():
            cipher_text = cipher_text + shifted_alphabet[idx].lower()
        else:
            cipher_text = cipher_text + shifted_alphabet[idx] 
    return(cipher_text)

And an example:

plain_text = "The quick brown fox jumps over the lazy dog!"
caesar_cipher(plain_text,3)

And we get:

'Qeb nrfzh yoltk clu grjmp lsbo qeb ixwv ald!'

If we want to decrypt it:

caesar_cipher(caesar_cipher(plain_text,3),26-3)

and we get:

'The quick brown fox jumps over the lazy dog!'

More details here:https://predictivehacks.com/caesar-cipher-in-python/