В настоящее время выполняется шифрование Vigenere в Python, и я и многие люди в моем классе застряли в одном аспекте.Добавление некоторых чисел в строку/список, а затем преобразование в буквы
После того как мы перевели ключевое слово в ординалы, нам нужно добавить их в сообщение для его шифрования. Это мой код до сих пор.
Input = input('Enter your message: ')
key = input('Enter the one word key: ')
times = len(Input)//len(key)+1
encryptedKey = (times*key)[:len(Input)]
output = []
for character in Input:
number = ord(character) - 96
output.append(number)
outputKey = []
for character in encryptedKey:
numberKey = ord(character) - 96
outputKey.append(numberKey)
print(encryptedKey)
print(outputKey)
print(Input)
print(output)
Так, если вход 'hello'
, и ключ 'bye'
, ключевое слово станет 'byeby'
[2,25,5,2,25]
и 'hello'
бы [8,5,12,12,15]
. Я не могу найти способ добавить первый 2
с 8
, 25
с 5
и так далее.
Я пробовал print(sum(output + outputKey))
, но, конечно, это просто добавляет все числа вместе, то есть ответ 111
.
Мне также нужно, чтобы они вернулись в буквы, так что это заканчивается зашифрованным сообщением.
Спасибо!
Почему бы не a: for i in len (keyword): loop? – ergonaut
Я подозреваю, что вы хотите 'zip' ... – jonrsharpe
@idjaw Во всяком случае, это не дубликат этого вопроса. Фокус на подобном элементе Vigenere - это модульная арифметика, даже если OP этого еще не осознает. – BlivetWidget