Прежде чем я перейду к решению, всегда убедитесь, что вы высказываете свои мысли о трудности, с которой сталкиваетесь, и точно указывайте, где у вас возникла проблема.
В настоящее время, исходя из вашего кода, кажется, что ваш ключ для шифрования ограждения - 2. Обязательно укажите это в вашем коде или описании.
В любом случае, если вы проанализируете зашифрованный текст, мы сможем восстановить исходный текст, сначала разделив зашифрованный текст на две части, а затем добавив соответствующие символы первой части к символам второй части. Итак, в этом примере I sapro fcvlwrti eido ii a
- это зашифрованный текст. Разделите его на две равные (или почти равные) части, I sapro fcvlwr
& ti eido ii a
Теперь просто go при добавлении первого символа из первой половины и второго символа из второй половины. Вам просто нужно обработать случай, когда зашифрованный текст нечетный или четный.
def decipher(ciphertex):
originalText = ''
size = len(ciphertext)
for i in range((size)//2):
originalText += ciphertext[i] + ciphertext[size//2 + i + (size%2)]
if(size%2==1):
originalText += ciphertext[size//2]
return originalText