Информатика, опубликовано 2018-08-22 19:39:02 by Гость

Шифр Цезаря. Этот шифр реализует следующее преобразование текста: каждая буква исходного текста заменяется следующей после нее буквой в алфавите, который считается написанным по кругу. Используя шифр Цезаря, зашифровать следующие фразы: а) Делу время - потехе час б) С Новым годом в) Первое сентября

Ответ оставил Гость

Введите смещение: 1
Делу время - потехе час | Еёмф гсёна - рпуёцё шбт
С Новым годом | Т Опгьн дпепн
Первое сентября | Рёсгпё тёоуавса

Исходный код на Python3:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

TL2I = dict(zip("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ",range(34)))
I2TL = dict(zip(range(34),"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"))
SL2I = dict(zip("абвгдеёжзийклмнопрстуфхцчшщъыьэюя",range(34)))
I2SL = dict(zip(range(34),"абвгдеёжзийклмнопрстуфхцчшщъыьэюя"))

phrases = (Делу время - потехе час, С Новым годом, Первое сентября)
key = int(input("Введите смещение: "))

for phrase in phrases:
    ciphered =
    for c in phrase:
        if not c.isalpha():
            ciphered += c
        if c.islower():
            ciphered += I2SL[ (SL2I[c] + key) % 33 ]
        if c.isupper():
            ciphered += I2TL[ (TL2I[c] + key) % 33 ]
    print("{} | {}".format(phrase, ciphered))


Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.

Форма вопроса доступна на полной версии этой страницы.