Простой Caesar Cypher, сокращение операторов if

Я начал читать криптографию и писал простую функцию для шифра Цезаря. Есть ли способ сжать операторы if, elif, else в один оператор. Я чувствую, что есть способ, о котором я просто не могу думать прямо сейчас. Спасибо!

from string import maketrans
def basic_cypher(message, shift):
    letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    if shift <= 26:
        shifted_letters = letters[shift:] + letters[:shift]
    elif shift <= -1:
        shifted_letters = letters[:shift] + letters[shift:]
    else:
        shifted_letters = letters[shift - 26:] + letters[:shift - 26]
    trans_tab = maketrans(letters, shifted_letters)
    return 'This is the encoded version of your message: ', message.translate(trans_tab)

person gold_cy    schedule 11.01.2017    source источник
comment
похоже, вы хотите найти сдвиг по модулю 26. shift % 26   -  person turbulencetoo    schedule 12.01.2017
comment
альтернативная реализация /   -  person Paul Rooney    schedule 12.01.2017
comment
в качестве примечания: для shift <= -1 shift <= 26 всегда будет True. Ваше условие elif никогда не будет выполнено   -  person Anonymous    schedule 12.01.2017
comment
@turbulencetoo, так что просто замените shift = shift % 26, а затем shifted_letters = letters[shift:] + letters[:shift] будет достаточно? И да, я понимаю, что теперь @MoinuddinQuadri   -  person gold_cy    schedule 12.01.2017