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)
Шифр Цезаря
В шифре Цезаря каждый символ, являющийся буквой латинского алфавита, заменяется на другой символ, 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.