Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачу по python. Пожалуйста.

- Ученик (122), на голосовании 4 месяца назад
Пожалуйста помогите уже долго ищу ответ. Вот задача:
Шифр Цезаря
В шифре Цезаря каждый символ, являющийся буквой латинского алфавита, заменяется на другой символ, 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.
Голосование за лучший ответ
Kotakasi Мыслитель (7548) 5 месяцев назад
 def CaesarCipherChar(c, k): 
if 'A' <= c <= 'Z':
return chr((ord(c) - ord('A') + k) % 26 + ord('A'))
elif 'a' <= c <= 'z':
return chr((ord(c) - ord('a') + k) % 26 + ord('a'))
else:
return c

def CaesarCipher(s, k):
return ''.join(CaesarCipherChar(c, k) for c in s)

s = "In a hole in the ground there lived a hobbit."
k = 3
encrypted = CaesarCipher(s, k)
print(encrypted)
Похожие вопросы