Задача 10. Шифр Цезаря

Юлий Цезарь использовал свой способ шифрования текста. Каждая буква заменялась на следующую по алфавиту через 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
4200login-checkЗадача 10. Шифр Цезаря

Добавить комментарий