Почему программа «шифрования» не работает с русским алфавитом?
Проблема в этой строчке: stringToEncrypt = stringToEncrypt.lower

Если ты всё правильно скопировал, то в ней ты не вызываешь метод lower(), а присваиваешь переменной stringToEncrypt ссылку на него. Т.е. правильно будет: stringToEncrypt = stringToEncrypt.lower()

Чтобы было проще, можно строку stringToEncrypt = stringToEncrypt.lower вообще удалить, и сразу написать:
stringToEncrypt = input("введи сообщение: ").lower()

А теперь подумай, зачем в переменной a словарь у тебя дважды повторяется?
Плох тот учитель что не видит простой шифр Цезаря. И какая разница Питон или не питон когда
просто надо спросить ученика как он вообще сам понимает свою разработку?

И удвоение алфавита здесь не нужно. Цезарь ведь поворачивает алфавит циклически. Берите остаток от деления на 33. А то что? Был-бы у вас алфавит в терабайт - то вы бы ставили двухтерабайтный диск чтобы решить такую задачу?