Найти - Пользователи
Полная версия: шифр Виженера
Начало » Python для новичков » шифр Виженера
1
Dispa
есть такой вариант шифра Виженера, код не мой, по этому нужна помощь в понимании, разъяснении что к чему и зачем тут написано, не могу разобраться просто. заранее спасибо
 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])
ZerG
Код работает с таблицей символов.
К сожалению обьяснить что тут написанно человеку который не знает не языка не математики - невозможно
попробуйте пройти быстрый курс по питону - возможно это облегчит вам понимание?
https://pythonworld.ru/samouchitel-python
https://pythontutor.ru/
Вам нужно только основы что бы понять что такое range, for, len
Думаю обьяснять что такое +\- ненужно
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB