Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python. Задача про Цезаря

Наташа Смирнова Ученик (99), на голосовании 2 года назад
в классическом алгоритме Юлия Цезаря каждый символ исходного секретного сообщения заменяется символом из того же алфавита, отстоящим на три позиции далее. Например, для русского алфавита буква А будет заменена на букву Г,Б-на Д и т.д.
Данный алгоритм относится к алгоритмам замены. Символ "." в конце строчки означает признак завершения шифрования.
Например, если исходный текст был таким:
Zb Ra Cx Dyk., то результат шифрования должен быть следующий:
Ce Ud Fa Gbn.
Реализовать алгоритм Юлия Цезаря на языке Python для букв русского и английского алфавита.
Программу написать коментируя каждую строчку.
Голосование за лучший ответ
Матвей Чебаков Мастер (1659) 2 года назад
bukvi = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ' # алфавит
soobhenie = input("Сообщение для шифровки >> ").upper() # ввод сообщения
shifr = '' # наш шифр
for i in soobhenie: # занимаемся преобразованием введенного нами сообщения
mesto = bukvi.find(i)
new_mesto = mesto + 3
if i in bukvi:
shifr = shifr + bukvi[new_mesto]
else:
shifr = shifr + i
print(shifr) # выводим полученный шифр
Молот Шотландцев Высший разум (303098) 2 года назад
У шифра Цезаря логика не хитрая...
Константин Юдин Знаток (250) 2 года назад
# Задание 8. Шифр Цезаря

def caesar_cipher(string, user_step):
char_list = [(letters[(letters.index(sym) + user_step) % len(letters)]
if sym in letters else ' ')
for sym in string]
new_str = ''
for i_char in char_list:
new_str += i_char
return new_str

letters = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'
word = input('Введите сообщение: ')
step = int(input('Введите сдвиг: '))

output_str = caesar_cipher(word, step)

print('Зашифрованная строка: ', output_str)
Reeps OneУченик (208) 9 месяцев назад
Спасибо!
Похожие вопросы