Помогите срочно написать функцию на язике Python!!!
1. Чтобы зашифровать сообщение с помощью шифра частокола, переписываем его в соответствующем виде. Например, для слова «криптография» с высотой частокола 2 получим следующую схему: кРиПтОгРаФия. Далее считываем текст строчками, начав с верхнего. В результате получаем криптотекст «рпорфякитгаи». Высоту частокола (секретный ключ шифра) можно выбирать, что и будет предложено пользователю.
Напишите функции, которые будут зашифровывать и расшифровывать введенный пользователем текст с помощью введенного ключа – высоты частокола.
Answers & Comments
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("сообщение: ")))
якщо буде речення з пробліма, воно буде шифрувати лише перше слово