Предмет: Информатика, автор: mari4ek

ДАЮ 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))


trueberry17: Максимальное число сдвига - 32 или делать до бессконечности?
trueberry17: 25*
trueberry17: Ладно, в самом алфавите всего 25 букв, так что будет до 25
p15: Мне нравятся Ваши решения. https://znanija.com/task/49779881 так же бы решили? Или свой ответ? Заодно можно проверить.

Ответы

Автор ответа: trueberry17
2

Объяснение: Если я неправильно поняла задачу или ты что-то не понимаешь из этого - пиши, порешаем. =)

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))

Приложения:
Похожие вопросы
Предмет: Русский язык, автор: фнтон27766642222
Предмет: Русский язык, автор: Aysa22
Предмет: Английский язык, автор: Аноним