Не могли бы вы сказать мне, почему я получаю только * в качестве выходных данных, а не строку, введенную изначально, как расшифрованную строку?

#python #encryption

#python #шифрование

Вопрос:

Вопрос

Напишите программу, которая вводит основную строку, а затем создает зашифрованную строку путем встраивания короткой символьной строки после каждого символа. Программа также должна иметь возможность создавать расшифрованную строку из зашифрованной строки.

Код

 def encrypt(string,key):
    return key.join(string)
def decrypt(string,key):
    return key.split(string)
#main
original_str=input("Enter a string:")
encrypt_key=input("Enter encryption key:")

encrypt_str=encrypt(original_str,encrypt_key)
print("The encrypted string:",encrypt_str)

decrypt_str=decrypt(encrypt_str,encrypt_key)
decrypted_str=" ".join(decrypt_str)
print("The decrypted string:",decrypted_str)
  

Вывод

 Enter a string:twinkle twinkle little star
Enter encryption key:*
The encrypted string: t*w*i*n*k*l*e* *t*w*i*n*k*l*e* *l*i*t*t*l*e* *s*t*a*r
The decrypted string: *
  

Проблема

Я хочу, чтобы вывод расшифрованной строки был:

мерцающая мерцающая маленькая звездочка

и не *

Комментарии:

1. return key.split(string) Это должно быть return string.split(key) .

2. В качестве незначительного замечания, ваша программа «шифрования» не на 100% корректна. В нем говорится, чтобы добавить ключ после каждого символа. Вы не добавляете ключ после последнего символа.

Ответ №1:

Замените decrypt функцию на это:

 def decrypt(string,key):
   return string.split(key)
  

А также заменить decrypted_str = " ".join(decrypt_str) на decrypted_str = "".join(decrypt_str) (разница — пробел).