Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 25, 2022 18:03:46

Dispa
Зарегистрирован: 2022-09-13
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

шифр Виженера

есть такой вариант шифра Виженера, код не мой, по этому нужна помощь в понимании, разъяснении что к чему и зачем тут написано, не могу разобраться просто. заранее спасибо

 tabula_recta = ["".join([chr(x) for x in range(97 + y, 123 + y) if x < 123] + [chr(x - 123 + 97) for x in range(97 + y, 123 + y) if x >= 123]) for y in range(26)]
def norm_key(key, word):
    return key * (len(word) // len(key)) + key[:len(word) % len(key)]
def coder(word, key):
    return "".join([tabula_recta[ord(x) - 97][ord(y) - 97] for (i, x) in enumerate(word) for (n, y) in enumerate(norm_key(key, word)) if n == i])
def decoder(word, key):
    return "".join([chr(tabula_recta[ord(x) - 97].index(y) + 97) for (i, x) in enumerate(norm_key(key, word)) for (n, y) in enumerate(word) if n == i])

Офлайн

#2 Окт. 25, 2022 18:24:47

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

шифр Виженера

Код работает с таблицей символов.
К сожалению обьяснить что тут написанно человеку который не знает не языка не математики - невозможно
попробуйте пройти быстрый курс по питону - возможно это облегчит вам понимание?
https://pythonworld.ru/samouchitel-python
https://pythontutor.ru/
Вам нужно только основы что бы понять что такое range, for, len
Думаю обьяснять что такое +\- ненужно



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version