Bootstrap

python-加密的病历单(赛氪OJ)

[题目描述]
小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。
经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子)
1. 原文中所有的字符都在字母表中被循环左移了三个位置(dec→ghf)
2. 逆序存储(abcd→dcba)
3. 大小写反转(abXY→ABxy)
输入:
一个加密的字符串。(长度小于 50 且只包含大小写字母)
输出:
输出解密后的字符串。
样例输入1
GSOOWFASOq

样例输出1
Trvdizrrvj

来源/分类(难度系数)


完整代码展示:
a=list(input())
for i in range(0,len(a)):
      if a[i].islower():
           a[i]=a[i].upper()
     else:
           a[i]=a[i].lower()
b=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a','b','c']
c=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','A','B','C']
a.reverse()
d=[]
for i in range(0,len(a)):
      for j in range(0,26):
           if a[i]==b[j]:
                d.append(b[j+3])
           if a[i]==c[j]:
                d.append(c[j+3])
sum=""
for k in range(0,len(d)):
      sum+=d[k]
print(sum)

 

代码解释:
a=list(input())  ”,让用户输入需要解密的字符串,并将其储存在列表a中。
for i in range(0,len(a)):
       if a[i].islower():
             a[i]=a[i].upper()
      else:
             a[i]=a[i].lower()
 ”,依次遍历列表a中所有元素,进行加密的最后一步的逆操作
:将大写的字符替换为小写,将小写的字符替换为大写。
b=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a','b','c']
c=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','A','B','C']
a.reverse()                                                    
”,建立列表b和列表c,分别用于储存a~z~c和A~Z~C的29个字符。接着进行加密操作的中间一步的逆操作:将储存已加密的字符的列表a反转。
d=[]
 for i in range(0,len(a)):
       for j in range(0,26):
             if a[i]==b[j]:
                  d.append(b[j+3])
             if a[i]==c[j]:
                  d.append(c[j+3])
”,进行加密操作的第一步的逆操作:建立个空列表d,依次遍历列表a中所有元素,并一一与列表b和列表c中所有元素进行对比:如果a[i]==b[j],则将b[j]后面三位的b[j+3]添加进列表d中;a[i]==c[j]同理。
sum=""
 for k in range(0,len(d)):
       sum+=d[k]
 print(sum)                    
 ”,遍历结束后,建立一个空字符串sum,从左至右依次连接d中所有元素。连接完成后,打印sum。


运行效果展示:

8df185e75d1d4b348704bc53e3cb14b9.jpg

f7a27f1b8ec742c38c4c245802751208.jpg 

               (声明:以上内容均为原创) 

;