Python將阿拉伯數字轉化為中文大寫

來源:互聯網
上載者:User
利用Python將阿拉伯數字轉化為中文大寫,其實最麻煩的地方就是中間空多個0的問題,這種情況下,採用拆分法則,將一個大數字,先拆分成整數部分和小數部分,再對整數部分按照仟、萬、億、兆分位拆分為四個字串組成的List,每個字串最多4個字元,然後對每個分位的字串用大寫函數轉換成大寫,最後合并,這樣等於縮減了問題,處理就相對簡單了

#!/usr/bin/env python# -*- coding: utf-8 -*-'''#演算法說明:要求字串輸入,現將字串差費為整數部分和小數部分產生list[整數部分,小數部分]#將整數部分拆分為:[億,萬,仟]三組字串組成的List:['0000','0000','0000'](根據實際輸入產生階梯List)#例如:600190000010.70整數部分拆分為:['600','1900','0010']#然後對list中每個字串分組進行大寫化再合并#最後處理小數部分的大寫化'''class cnumber:    cdict={}    gdict={}    xdict={}    def __init__(self):        self.cdict={1:u'',2:u'拾',3:u'佰',4:u'仟'}        self.xdict={1:u'元',2:u'萬',3:u'億',4:u'兆'} #數位識別碼符        self.gdict={0:u'零',1:u'壹',2:u'貳',3:u'三',4:u'肆',5:u'伍',6:u'陸',7:u'柒',8:u'捌',9:u'玖'}        def csplit(self,cdata): #拆分函數,將整數字串拆分成[億,萬,仟]的list        g=len(cdata)%4        csdata=[]        lx=len(cdata)-1        if g>0:            csdata.append(cdata[0:g])        k=g        while k<=lx:            csdata.append(cdata[k:k+4])            k+=4        return csdata                      def cschange(self,cki): #對[億,萬,仟]的list中每個字串分組進行大寫化再合并        lenki=len(cki)        i=0        lk=lenki        chk=u''        for i in range(lenki):            if int(cki[i])==0:                if i
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.