Я начал читать криптографию и писал простую функцию для шифра Цезаря. Есть ли способ сжать операторы 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)
shift % 26
- person turbulencetoo   schedule 12.01.2017shift <= -1
shift <= 26
всегда будетTrue
. Ваше условиеelif
никогда не будет выполнено - person Anonymous   schedule 12.01.2017shift = shift % 26
, а затемshifted_letters = letters[shift:] + letters[:shift]
будет достаточно? И да, я понимаю, что теперь @MoinuddinQuadri - person gold_cy   schedule 12.01.2017