首页/文章/ 详情

将字母转化为数字---26进制

1年前浏览490

       在平时进行关于excel的开发的时候,经常会因为列id而烦恼,每一次都要去数一下,所以今天抽空写了一个小程序,通过ASCII码的方式进行进制转换,也就是从excel列标的字母26进制转换为十进制的整数。该函数需要使用python执行。



    def alphabet2num(s):    """    在做关于excel的开发的时候,非常头疼列的序号的问题,AH列究竟应该是多少列呢?    这个函数就是为了解决这个问题设计的。    :param s: 传入excel列标, 如AH, 不区分大小写。    :return: 返回列序号, A列为0    """    if isinstance(s, str):        num = 0        s = s.upper()[::-1]        for i in range(s.__len__()):            if 65 <= ord(s[i]) <= 90:                num += (ord(s[i])-64)*26**i            else:                raise ValueError("请输入正确的列标,必须为字母组成!")        return num-1    else:        raise ValueError("请输入正确的列标,必须为字母组成!")print(alphabet2num("ah"))
       


        在使用的时候只需要将你的目标列标传入函数就可以得到它位于多少列了,这个函数在配合pandas进行切片的时候还是挺好用的,目前使用过程中没有发现错误或者bug,欢迎反馈使用过程中的错误。

    来源:SimCoder
    Abaquspython
    著作权归作者所有,欢迎分享,未经许可,不得转载
    首次发布时间:2023-02-02
    最近编辑:1年前
    签我的导演他姓张
    本科 怕什么真理无穷进一寸有一寸欣喜
    获赞 47粉丝 42文章 44课程 0
    点赞
    收藏
    未登录
    还没有评论

    课程
    培训
    服务
    行家

    VIP会员 学习 福利任务 兑换礼品
    下载APP
    联系我们
    帮助与反馈