[PYTHON]26进制(A-Z)与10进制互相转换

应用场景

把数据库中的数据导入固定模板的EXCEL文件中,有多个模板,不确定列,而且需要分区导出;

 


sequence = list(map(lambda x: chr(x), range(ord('A'), ord('Z') + 1)))


def ten2TwentySix(num):
    L = []
    if num > 25:
        while True:
            d = int(num / 26)
            remainder = num % 26
            if d <= 25:
                L.insert(0, sequence[remainder])
                L.insert(0, sequence[d - 1])
                break
            else:
                L.insert(0, sequence[remainder])
                num = d - 1
    else:
        L.append(sequence[num])

    return "".join(L)


def twentySix2Ten(s):
    l = len(s)
    sum = 0
    if l > 1:
        for i in range(l - 1):
            index = sequence.index(s[i])
            print(index)
            num = pow(26, l - 1) * (index + 1)
            print(num)
            l = l - 1
            sum = sum + num
        sum = sum + sequence.index(s[-1])
    else:
        sum = sum + sequence.index(s[-1])
    return sum


if __name__ == '__main__':
    print(ten2TwentySix(25))
    print(twentySix2Ten('Z'))

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值