CN_NUM = {
u'〇' : 0,
u'一' : 1,
u'二' : 2,
u'三' : 3,
u'四' : 4,
u'五' : 5,
u'六' : 6,
u'七' : 7,
u'八' : 8,
u'九' : 9,
u'零' : 0,
u'壹' : 1,
u'貳' : 2,
u'叁' : 3,
u'肆' : 4,
u'伍' : 5,
u'陸' : 6,
u'柒' : 7,
u'捌' : 8,
u'玖' : 9,
u'貮' : 2,
u'兩' : 2,
}
CN_UNIT = {
u'十' : 10,
u'拾' : 10,
u'百' : 100,
u'佰' : 100,
u'千' : 1000,
u'仟' : 1000,
u'萬' : 10000,
u'萬' : 10000,
u'億' : 100000000,
u'億' : 100000000,
u'兆' : 1000000000000,
}
def cn2dig(cn):
lcn = list(cn)
unit = 0 #當(dāng)前的單位
ldig = []#臨時數(shù)組
while lcn:
cndig = lcn.pop()
if CN_UNIT.has_key(cndig):
unit = CN_UNIT.get(cndig)
if unit==10000:
ldig.append('w') #標(biāo)示萬位
unit = 1
elif unit==100000000:
ldig.append('y') #標(biāo)示億位
unit = 1
elif unit==1000000000000:#標(biāo)示兆位
ldig.append('z')
unit = 1
continue
else:
dig = CN_NUM.get(cndig)
if unit:
dig = dig*unit
unit = 0
ldig.append(dig)
if unit==10: #處理10-19的數(shù)字
ldig.append(10)
ret = 0
tmp = 0
while ldig:
x = ldig.pop()
if x=='w':
tmp *= 10000
ret += tmp
tmp=0
elif x=='y':
tmp *= 100000000
ret += tmp
tmp=0
elif x=='z':
tmp *= 1000000000000
ret += tmp
tmp=0
else:
tmp += x
ret += tmp
return ret
#ldig.reverse()
#print ldig
#print CN_NUM[u'七']
if __name__ == '__main__':
test_dig = [u'九',
u'十一',
u'一百二十三',
u'一千二百零三',
u'一萬一千一百零一',
u'十萬零三千六百零九',
u'一百二十三萬四千五百六十七',
u'一千一百二十三萬四千五百六十七',
u'一億一千一百二十三萬四千五百六十七',
u'一百零二億五千零一萬零一千零三十八',
u'一千一百一十一億一千一百二十三萬四千五百六十七',
u'一兆一千一百一十一億一千一百二十三萬四千五百六十七',
]
for cn in test_dig:
print cn2dig(cn)
Python將漢字?jǐn)?shù)字轉(zhuǎn)換成阿拉伯?dāng)?shù)字的方法
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 夜微涼,尺素香。星月半央,淡了素妝。 暗思量,自難忘。涕淚兩行,濕了華裳。 --題記 窗外的夜,是靜謐的涼。微風(fēng)習(xí)...
- 目錄 Git自學(xué)與掉坑實錄(一)· 創(chuàng)建版本庫· 添加提交文件至版本庫 Git自學(xué)與掉坑實錄(二)· 本地文件的修...