题解 | #简单密码#

简单密码

https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac

import sys

"""
输入、字典
    小写字母的ascii码的范围是【97,122】
    大写字母的ascii码的范围是【65,90】
    大小写字母之间差距32个数
    用到两个函数:
    ord()#将字母转换成对应的ascii码
    chr()#将ascii码转换成对应的字母

"""

#
def getKey(value, keys_list,dic):
    # 判断是不是大写字母,是那么就转换阿斯克码+32+1变小写
    if "A" <= value < "Z":
        value = chr(ord(value) + 33)
        return value
    elif value == 'Z':
        return 'a'
    else:
        pass
    
    # 判断是不是数字,是数字直接输入
    if value.isdigit():
        return value

    # 数字和大写字母完成,那就是字典
    # 把关键值组成列表,之后判断在哪个关键字里面,返回这个关键字就好了
    for i in keys_list:
        if value in i:
            return dic.get(i)

if __name__ == "__main__":
    # 输入
    s = input()
    dic = {
        "1": 1,
        "abc": 2,
        "def": 3,
        "ghi": 4,
        "jkl": 5,
        "mno": 6,
        "pqrs": 7,
        "tuv": 8,
        "wxyz": 9,
        "0": 0,
    }

    # 数据准备
    keys_list = []
    for i in dic.keys():
        keys_list.append(i)

    for i in s:
        key = getKey(i, keys_list, dic)
        print(key, end="")




全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务