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


    #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)
  • 相关阅读:
    1115:直方图
    1114:白细胞计数
    1114:白细胞计数
    忘记mysql密码后重置密码
    pycharm中无法导入pip安装的包
    win7升级win10
    WIN7 Windows update提示不支持硬件
    getcwd() 和 os.path.realpath () 的区别
    selenium启动chrome时,弹出设置页面:Windows Defender 防病毒要重置您的设置
    ui测试如何检测页面差异
  • 原文地址:https://www.cnblogs.com/fenix/p/2380485.html
Copyright © 2020-2023  润新知