Python. Шифр Цезаря

подскажите, пожалуйста. Написал программу, которая дешифрует шифр Цезаря. Не понимаю почему программа дешифрует б как я

answer = ''

a = ord('а')
A = ord('А')
z = ord('я')
Z = ord('Я')

for i in text:
    s = ord(i)
    if (s > a and s <= z) or (s > A and s <= Z):
        s = s - 1
    if s == a:
        s = z
    if s == A:
        s = Z
    answer += chr(s)
return answer

Ответы (1 шт):

Автор решения: MBo

Потому что у вас выполняется цепочка независимых операторов if, и b превращается в a, а потом сразу в z. Поправить дело можно с помощью продолжения того же оператора elif

if (s > a and s <= z) or (s > A and s <= Z):
    s = s - 1
elif s == a:
    s = z
elif s == A:
    s = Z
→ Ссылка