python练习-密码简单加密

题目描述

将密码按照规则从明文转变为密文,输入为密码明文,密码长度不超过100个字符、不包含空格,需要输出相应密文。转变规则:明文中大写字母转变为小写字母并后移一位,明文中小写字母按照手机9键键盘进行转变(abc–2, def–3, ghi–4, jkl–5, mno–6, pqrs–7, tuv–8 wxyz–9),数字和其他的符号都不做变换。

做题思路

若输入字符串中有大写字母、小写字母就要转变,所以遍历字符串看一下每个字符是大写字母?小写字母?数字?其他特殊字符?这里用到python正则表达式进行匹配。如果是大写字母就先用lower()函数转为小写,然后利用一个已经定义好的小写字母alpaList从index+1索引到下一位小写字母,并添加到结果list中。如果是小写字母,则逐一判断应该转化为哪个数字,并添加到结果list中。如果是数字和其他字符,则直接添加到结果list中。这道题我暂时没有想到别的方法,要是有好的办法大家可以一起分享一下哦。

python代码实现

import re

alphaList = ['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']
str1 = input()

output = []
for x in str1:
    if re.match('[A-Z]', x):
        xLower = x.lower()
        idx = alphaList.index(xLower) + 1
        if idx == len(alphaList):
            idx = 0
        x = alphaList[idx]
    elif re.match('[a-z]', x):
        if x in 'abc':
            x = '2'
        elif x in 'def':
            x = '3'
        elif x in 'ghi':
            x = '4'
        elif x in 'jkl':
            x = '5'
        elif x in 'mno':
            x = '6'
        elif x in 'pqrs':
            x = '7'
        elif x in 'tuv':
            x = '8'
        elif x in 'wxzy':
            x = '9'
    output.append(x)
print(''.join(output))
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值