Python入门习题----解密码

【问题描述】

有一行电文,已按下面规律译成密码:

     A--Z   a--z
     B--Y   b--y

     C--X   c--x

     ......

即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母; 非字母字符不变。编写程序把密码译回原文,并输出密码和原文。

【输入形式】

输入一串密码(长度为10,可包含数字、字母)

【输出形式】

首先输出密码,然后换行后输出原文

【样例输入】

4sdf&13TBD

【样例输出】

4sdf&13TBD

4hwu&13GYW


参考代码:

# -*- coding: utf-8 -*-
"""
Created on Tue Oct 16 15:10:42 2018

@author: Dina
"""

line = input()
d = {
     '1':'A',
     '2':'B',
     '3':'C',
     '4':'D',
     '5':'E',
     '6':'F',
     '7':'G',
     '8':'H',
     '9':'I',
     '10':'J',
     '11':'K',
     '12':'L',
     '13':'M',
     '14':'N',
     '15':'O',
     '16':'P',
     '17':'Q',
     '18':'R',
     '19':'S',
     '20':'T',
     '21':'U',
     '22':'V',
     '23':'W',
     '24':'X',
     '25':'Y',
     '26':'Z'
     
     }

password = list(line)
result_list = []
print(line)
for i in range(len(password)):
    if password[i].isalpha() :       
        for v in d.values():
            if password[i] == v  :
                for k in d:
                    if d[k] == v :
                        password[i] = d[str(26-int(k)+1)]
                break  
            
            if password[i].islower() :                
                if password[i].upper() ==  v :              
                   for k in d:
                        if d[k] == v :
                            password[i] = d[str(26-int(k)+1)].lower()
                   break         
    result_list.append(password[i])

for re in result_list:
    print(re,end='')

提交可通过:

 

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值