ДАЮ 80 БАЛОВ!!!!!!! Питон
Шифр Цезаря
В шифре Цезаря каждый символ, являющийся буквой латинского алфавита, заменяется на другой символ, k-тый по счёту в алфавите после данного. Если этот символ выходит за границы, то берётся соответствующий из начала строки. Например, для k=3 символ A заменяется на D, символ B — на E, символ C — на F, ... , символ Z — на C. Аналогично, строчные буквы заменяются на строчные буквы. Все остальные символы не меняются.
Дана строка, зашифруйте её при помощи шифра Цезаря. Решение оформите в виде функции CaesarCipher(S, k), возвращающей новую строку. S — исходная строка, k — величина сдвига. Функцию нужно вызывать со значением k = 3.
Указание
Напишите функцию CaesarCipherChar(c, k), шифрующую один символ.
Примеры
Ввод
In a hole in the ground there lived a hobbit.
Вывод
Lq d kroh lq wkh jurxqg wkhuh olyhg d kreelw.
В конце должно быть написано
S=input()
Print(CaesarCipher(S,3))
Answers & Comments
Объяснение: Если я неправильно поняла задачу или ты что-то не понимаешь из этого - пиши, порешаем. =)
1. Создала функцию в которой объявила переменную chars(ch) и задала ей все символы английского алфавита, умножила их на 2, тк как это самый лёгкий вариант, который смогла придумать. После добавила к этой переменной upper(), чтоб работало и на верхний регистр.
2. Если не объяснять всё буквально, то нашла по отдельности каждый символ в ch и прибавила k из условия, если не находит - значит этот символ не является буквой английского алфавита.
Python Code:
def CaesarCipher(S, k):
ch = 'abcdefghijklmnopqrstuvwxyz'*2; ch+=ch.upper()
return ''.join([ch[ch.index(x)+k] if x in ch else x for x in S])
S=input()
print(CaesarCipher(S, 3))