Юлий Цезарь использовал свой способ шифрования текста. Каждая буква заменялась на следующую по алфавиту через K позиций по кругу. Если взять русский алфавит и k = 3, то в слове, которое мы хотим зашифровать, буква А станет буквой Г, Б станет Д и так далее.
Пользователь вводит сообщение, а также значение сдвига. Напишите программу, которая зашифрует это сообщение при помощи шифра Цезаря.
Пример:
Введите сообщение: это питон
Введите сдвиг: 3
Зашифрованное сообщение: ахс тлхср
Решение:
def get_index(smb, to_right, lst):
index = lst.index(smb)
if index + to_right > len(lst) - 1:
index = index + to_right - len(lst)
else:
index += to_right
return index
text = input('Введите сообщение: ').lower()
shift = int(input('Введите сдвиг: '))
ascii_en = [chr(i) for i in range(ord('a'), ord('z') + 1)]
ascii_ru = [chr(i) for i in range(ord('а'), ord('я') + 1)]
encrypted_string = ''
for symbol in text:
if symbol in ascii_ru:
encrypted_string += ascii_ru[get_index(symbol, shift, ascii_ru)]
elif symbol in ascii_en:
encrypted_string += ascii_en[get_index(symbol, shift, ascii_en)]
else:
encrypted_string += symbol
print(encrypted_string)
Как можно отблагодарить:
- Оформить удобную для вас подписку на Boosty.to
- Разово поддержать через DonationAlerts
42000login-checkЗадача 10. Шифр Цезаря
