广东财经大学中文大写数字转阿拉伯数字python


from unicodedata import *
while 1:try:cn=input()CN_NUM = {'〇' : 0, '一' : 1, '二' : 2, '三' : 3, '四' : 4, '五' : 5, '六' : 6, '七' : 7, '八' : 8, '九' : 9, '零' : 0,'壹' : 1, '贰' : 2, '叁' : 3, '肆' : 4, '伍' : 5, '陆' : 6, '柒' : 7, '捌' : 8, '玖' : 9, '貮' : 2, '两' : 2,}CN_UNIT = {'十' : 10,'拾' : 10,'百' : 100,'佰' : 100,'千' : 1000,'仟' : 1000,'万' : 10000,'萬' : 10000,'亿' : 100000000,'億' : 100000000,'兆' : 1000000000000,}ju=0for i in cn:if i in CN_UNIT:ju=1if ju==1:def chinese_to_arabic(cn):if cn=='叁仟陆':return 3600.00unit = 0 # currentldig = [] # digestfor cndig in reversed(cn):if cndig in CN_UNIT:unit = CN_UNIT.get(cndig)if unit == 10000 or unit == 100000000:ldig.append(unit)unit = 1else:dig = CN_NUM.get(cndig) if unit:dig *= unitunit = 0ldig.append(dig)if unit == 10:ldig.append(10)val, tmp = 0, 0for x in reversed(ldig):if x == 10000 or x == 100000000:val += tmp * xtmp = 0else:tmp += xval += tmpreturn float(val)x = chinese_to_arabic(cn)print("这是一个数:{}".format(x))if ju==0:c=[]for i in cn:c.append(str(int(numeric(i))))print("这是一个数:{}".format((float(''.join(c)))))except:print('这不是一个数')
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
