Я начинаю писать код для шифрования шифром Виженера. Во-первых, я хочу сделать ключ. Ключ нужно повторять снова и снова, пока он не совпадет с длиной сообщения, которое нужно зашифровать, поэтому я создал функцию, которая сделает это за меня:
def makekey(key, message):
finalkey = []
print(message) # to see if the key fits under the message correctly
key = list(key)
while len(finalkey) < len(message): # while the key is shorter than the message
for i in range(0, len(key)): # iterate through characters in the key
finalkey.append(key[i]) # append the characters in the processed key list
if len(finalkey) > len(message): # if the final key is still bigger than the message
difference = len(finalkey) - len(message) # finds the difference between the two
del key[-difference] # removes the difference
return ''.join(finalkey) # joins the final key into a string
print(makekey("LOVE", "Python")) # calling the function
Вывод должен выглядеть так:
Python
LOVELO
Но программа просто выдает ошибку индекса вне допустимого диапазона, и я понятия не имею, что происходит!
Сообщение об ошибке:
Traceback (most recent call last):
File "test.py", line 14, in <module>
print(makekey("LOVE", "Python")) # calling the function
File "test.py", line 8, in makekey
finalkey.append(key[i]) # append the characters in the processed key list
IndexError: list index out of range