Предмет: Информатика, автор: romarioriw2005

Помогите срочно написать функцию на язике Python!!!
1. Чтобы зашифровать сообщение с помощью шифра частокола, переписываем его в соответствующем виде. Например, для слова «криптография» с высотой частокола 2 получим следующую схему: кРиПтОгРаФия. Далее считываем текст строчками, начав с верхнего. В результате получаем криптотекст «рпорфякитгаи». Высоту частокола (секретный ключ шифра) можно выбирать, что и будет предложено пользователю.
Напишите функции, которые будут зашифровывать и расшифровывать введенный пользователем текст с помощью введенного ключа – высоты частокола.

Ответы

Автор ответа: anonymous2010
1

def check(lenght=2, word=None):

   if word == None:

       return None

   word = word.split()[0]

   

   if len(word) < lenght:

       return 0

   else:

       return list(word)

def crypto(lenght=2, word=None):

   word = check(

       lenght=lenght,

       word=word)

   if word == 0:

       exit("Error")

   title = []

   lower = []

   for i in range(len(word)):

       if i % lenght == lenght-1:

           title.append(word[i])

       else:

           lower.append(word[i])

   

   return ''.join(title+lower)

def unCrypto(lenght=2, word=None):

   word = check(

       lenght=lenght,

       word=word)

   if word == 0:

       exit("Error")

   unCryptoWord = ''

   for i in range(len(word)//lenght):

       for j in range(lenght-1):

           unCryptoWord += word[len(word)//lenght+j+i]    

       unCryptoWord += word[i]

   return unCryptoWord

#зашифровать

print(crypto(

   lenght=int(input("высотой частокола: ")),

   word=input("сообщение: ")))

#расшифровывать

print(unCrypto(

   lenght=int(input("высотой частокола: ")),

   word=input("сообщение: ")))


anonymous2010: працює лише для 1-го слова :)
якщо буде речення з пробліма, воно буде шифрувати лише перше слово
Похожие вопросы