На вход программе подается строка (длиной не более 200 символов), в которой нужно зашифровать все английские слова (словом называется непрерывная последовательность английских букв, слова друга от друга отделяются любыми другими символами, длина слова не превышает 20 символов). Строка заканчивается символом #, других символов # в строке нет. Каждое слово зашифровано с помощью циклического сдвига на длину этого слова. Например, если длина слова равна K, каждая буква в слове заменяется на букву, стоящую в английском алфавите на K букв дальше (алфавит считается циклическим, то есть, за буквой Z стоит буква A). Строчные буквы при этом остаются строчными, а прописные – прописными. Символы, не являющиеся английскими буквами, не изменяются.
Требуется написать программу, которая будет выводить на экран текст зашифрованного сообщения. Например, если исходный текст был таким:
Day, mice. "Year" is a mistake#
то результат шифровки должен быть следующий:
Gdb, qmgi. "Ciev" ku b tpzahrl#
Требуется написать программу, которая будет выводить на экран текст зашифрованного сообщения. Например, если исходный текст был таким:
Day, mice. "Year" is a mistake#
то результат шифровки должен быть следующий:
Gdb, qmgi. "Ciev" ku b tpzahrl#
Решение
def kod(m):
nm=''
d=0
for i in range(len(m)):
p=ord(m[i])
if (p>64 and p<91) or (p>96 and p<123):
d+=1
for u in range(len(m)):
p=ord(m[u])
if (p>64 and p<91):
g=p+d
if g>91:
g=64+(g-90)
elif (p>96 and p<123):
g=p+d
if g>122:
g=96+(g-122)
else:
g=p
nm+=chr(g)
return nm
c=input()
n=''
nn=''
l=c.count(' ')
for i in range(l):
if l>0:
po=c.index(' ')
s=c[:po]
c=c[po+1:]
k=0
nn=''
else:
s=c
k=0
n=n+' '+kod(s)
n=n+' '+kod(c)
print(n)
Комментариев нет:
Отправить комментарий