最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 开发技术 > Python语言 >
python如何实现数字转汉字的问题?
PHP中文网发表于 2021-09-28 18:07 次浏览

    今天给大家分享的内容是python实现数字转汉字的方法,我们想要把阿拉伯数字转换成对应的汉字数字输出,可以使用两种方法,第一种是用def num_to_char(num).,第二种是使用def _to_chinese4(num),那么具体是怎样实现的呢?下面我们一起来看示例。

    本文操作环境:windows7系统,DELL G3电脑,python3.5版

    python实现将阿拉伯数字转换成中文

    第一种转换方式:

    1  -->  一
    12   -->  一二
def num_to_char(num):
    """数字转中文"""
    num=str(num)
    new_str=""
    num_dict={"0":u"零","1":u"一","2":u"二","3":u"三","4":u"四","5":u"五","6":u"六","7":u"七","8":u"八","9":u"九"}
    listnum=list(num)
    # print(listnum)
    shu=[]
    for i in listnum:
        # print(num_dict[i])
        shu.append(num_dict[i])
    new_str="".join(shu)
    # print(new_str)
    return new_str

    第二种转换方式:

     1   -->   一
    12  -->   十二
    23  -->  二十三
_MAPPING = (u'零', u'一', u'二', u'三', u'四', u'五', u'六', u'七', u'八', u'九', u'十', u'十一', u'十二', u'十三', u'十四', u'十五', u'十六', u'十七',u'十八', u'十九')
_P0 = (u'', u'十', u'百', u'千',)
_S4 = 10 ** 4
def _to_chinese4(num):
    assert (0 <= num and num < _S4)
    if num < 20:
        return _MAPPING[num]
    else:
        lst = []
        while num >= 10:
            lst.append(num % 10)
            num = num / 10
        lst.append(num)
        c = len(lst)  # 位数
        result = u''
        for idx, val in enumerate(lst):
            val = int(val)
            if val != 0:
                result  = _P0[idx]   _MAPPING[val]
                if idx < c - 1 and lst[idx   1] == 0:
                    result  = u'零'
        return result[::-1]

    以上就是python实现数字转汉字的两种方法了,需要的朋友可以借鉴学习,希望本文对大家有帮助,想要了解更多python的使用技巧,请关注群英网络其它相关文章。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐