Python.Шифр Цезаря В шифре Цезаря каждый символ, являющийся буквой латинского алфавита, заменяется на другой символ, k -тый по счёту в алфавите после данного. Если этот символ выходит за границы, то берётся соответствующий из начала строки. Например, для =3 k = 3 символ A заменяется на D , символ B — на E , символ C — на F , ..., символ Z – на C . Аналогично, строчные буквы заменяются на строчные буквы. Все остальные символы не меняются. Дана строка, зашифруйте её при помощи шифра Цезаря. Решение оформите в виде функции CaesarCipher (S, k), возвращающей новую строку. S — исходная строка, k — величина сдвига. Функцию нужно вызывать со значением k = 3. Указание Cделайте функцию CaesarCipherChar (c, k), шифрующую один символ. Примеры Ввод 1 In a hole in the ground there lived a hobbit. Вывод Lq d kroh lq wkh jurxqg wkhuh olyhg d kreelw.
def CaesarCipherChar(c, k): if c.isalpha(): shift = 3 if c.islower(): start = ord('a') else: start = ord('A') return chr((ord(c) - start + shift) % 26 + start) 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 result = CaesarCipher(S, k) print(result) # Вывод: Lq d kroh lq wkh jurxqg wkhuh olyhg d kreelw.
def CaesarCipherChar(c, k):
if c.isalpha():
shift = 3
if c.islower():
start = ord('a')
else:
start = ord('A')
return chr((ord(c) - start + shift) % 26 + start)
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
result = CaesarCipher(S, k)
print(result) # Вывод: Lq d kroh lq wkh jurxqg wkhuh olyhg d kreelw.