понедельник, 6 августа 2018 г.

Для взлома шифра Цезаря

S = "Кгылчусеюегм ефб лрчсупгщлб"

S = S.upper()

chars = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
for i in range(0, len(chars)):
    print(i, "".join(chars[(chars.find(s) + i)%len(chars)] if chars.find(s) >= 0 else s for s in S))

можно было, конечно, и так:
for i in range(0, 33):
    print("".join(chr(ord('А')+(ord(s)-ord('А')+i)%(ord('Я')-ord('А')+1)) if ord(s) in range(ord('А'),ord('Я')+1) else s for s in S))
но вдруг набор символов слегка отличается от привычного?

Комментариев нет:

Отправить комментарий