• 数字转中文读写....(参考别人后修改)


    #coding=gbk
    import re
    import math

    chinese_digits = (u'',u'',u'',u'',u'',u'',u'',u'',u'',u'')
    chinese_jinzhi = (u'',u'',u'',u'',u'',u'')
    wanindex = 5
    def formatdigitwithjinzhi(digit,jinzhi):
        if(digit==0):
            return chinese_digits[digit]
        else:
            return chinese_digits[digit] + jinzhi

    def formatcapchnumber(chnumber):
        s = chnumber
        s = s.replace(u"",u"").replace(u"",u"").replace(u"",u"").replace(u"",u"").replace(u"",u"").replace(u"",u"").replace(u"",u"").replace(u"",u"").replace(u"",u"")
        s = s.replace(u"",u"").replace(u"",u"").replace(u"",u"")
        print s

    def format4digits(digits,saveonezeroathead = False):
        digits = '%04d' % digits
        s = ''
        jinzhi = -4
        for digit in digits:
            numeric_digit= int(digit)
            s+=formatdigitwithjinzhi(numeric_digit,chinese_jinzhi[jinzhi])
            jinzhi+=1
        if(saveonezeroathead):
            s = re.sub(r"^" + u"" + "{1,}",u"",s)
        else:
            s = re.sub(r"^" + u"" + "+","",s)
            s = re.sub(r"^" + u"一十",u"",s)
        s = re.sub(r"" + u"" + "+$","",s)
        s = re.sub(r"" + u"" + "{2,}",u"",s)
        return s

    def genejinzhi(wanindex):
        s = ''
        if(wanindex % 2==1):
            s+=u""
        yicount = wanindex / 2
        for i in range(yicount):
            s+=u"亿"
        return s


    def render(arg):
        source = re.sub("\D","",arg)
        source_list = []
        for i in range(int(math.ceil(len(source)/4.0))):
            if(i==0):
                source_list.insert(0,int(source[-4:]))
            else:
                source_list.insert(0,int(source[((-i-1)*4):(-i*4)]))
        result = ""
        oldresult = ""    
        firstpartdanweiindex = wanindex - len(source_list) + 2
        partindex = 0
        for part in source_list:
            oldresult = result
            if(len(source_list)>1 and partindex==(len(source_list)-1)):
                result += format4digits(part,saveonezeroathead = True)
            else:
                result += format4digits(part)
            if(oldresult!=result):
                result += genejinzhi(len(source_list) - partindex - 1)
                partindex +=1
        print result
        formatcapchnumber(result)

    while(True):
        arg = raw_input("\n(q to quit)\n>>>")
        if(arg=="quit" or arg=="q" or arg=="exit"):
            break
        else:
            render(arg)
  • 相关阅读:
    git版本库管理介绍,撤销git pull操作
    【laravel5.4】自定义404、503等页面
    【laravel5.4】{{$name}}、{{name}}、@{{$name}} 和 @{{name}} 的区别
    python 了解一点属性的延迟计算
    python 了解一下__dict__
    excel怎么把一个sheet的 全部内容打印到一页纸上
    python 简单了解一下 描述器
    python 调用父类方法, 重写父类构造方法, 不显式调用,会报错
    Python 今天抽空学习了@Property
    python 语法糖是什么意思
  • 原文地址:https://www.cnblogs.com/fenix/p/2380485.html
Copyright © 2020-2023  润新知