手机号用16进制表示

说明

一个类,能够将手机号转化为16进制字符串输出。目前并且没有实现验证手机号的方法verify_mobile有兴趣,可以自定义实现。

class ParseMobileTo16(object):
    """将手机号转化为16进制字符串输出"""

    def __init__(self, mobile):
        # 用于生成16进制的结果
        self.dic_16 = {'10': 'a', '11': 'b', '12': 'c', '13': 'd', '14': 'e', '15': 'f'}
        # 存储生成16进制的每一位
        self.ls = []
        self.mobile = mobile

    # 验证手机号
    def verify_mobile(self, mobile):
        # 校验手机号
        pass

    # 递归添加16进制的每一位到ls中
    def ls_16(self, mobile):
        # 余数
        reminder = mobile % 16
        # 商
        quotient = mobile // 16
        # 余数就是16进制的每一位
        self.ls.append(reminder)
        if quotient == 0:
            return
        self.ls_16(quotient)

    # 拼接16进制字符串
    def to_16(self, ls):
        str1 = ''
        for i in ls:
            # 将每一位转化为真正的16进制表示,拼接返回
            a = self.dic_16.get('%d' % i) or i
            str1 += str(a)
        return str1

    # 调度
    def run(self):
        # 验证手机号
        self.verify_mobile(self.mobile)
        # 获取16进制的每一位的10进制表示
        self.ls_16(self.mobile)
        # 获取16进制表示
        str2 = self.to_16(self.ls)[::-1]
        return str2

调度

if __name__ == '__main__':
    mobile = int(input('请输入电话号码'))
    p = ParseMobileTo16(mobile)
    s = p.run()
    print(s)

猜你喜欢

转载自blog.csdn.net/MrNoboday/article/details/81712423
今日推荐