Я следил за python учебником по шифрованию Vigenere (https://www.youtube.com/watch?v=sxFObRNriUg), и одна из моих проблем заключается в том, что я постоянно получаю ключевые ошибки (что понятно), но я не Я не понимаю, почему в руководстве по YouTube это не go. Учитывая, что я слово в слово следовал руководству (не считая изменений, сделанных для соответствия формату класса), я не понимаю, почему у моего кода возникают проблемы, а не у него. Любая помощь?
class VigenereCipher(object):
def __init__(self, key, alphabet):
self.key = key
self.alphabet = alphabet
self.letter_to_index = dict(zip(self.alphabet, range(len(self.alphabet))))
self.index_to_letter = dict(zip(range(len(self.alphabet)),self.alphabet))
def encode(self, text):
encrypted = ''
split_message = [text[i:i+len(self.key)] for i in range(0, len(text), len(self.key))]
for each_split in split_message:
i = 0
for letter in each_split:
number = (self.letter_to_index[letter] + self.letter_to_index[self.key[i]])
encrypted += self.index_to_letter[number]
i += 1
print (encrypted)
return encrypted
def decode(self, text):
decrypted = ''
split_cipher = [text[i:i+len(self.key)] for i in range(0, len(text), len(self.key))]
for each_split in split_cipher:
index = 0
for letter in each_split:
number = (self.letter_to_index[letter] - self.letter_to_index[self.key[i]])
decrypted += self.index_to_letter[number]
i += 1
return decrypted