Python 中文数字转数字(阿拉伯)
来源:互联网 发布:淘宝多少销量一颗心 编辑:程序博客网 时间:2024/06/11 21:57
直接上代码:
方法一:
common_used_numerals_tmp ={'零':0, '一':1, '二':2, '两':2, '三':3, '四':4, '五':5, '六':6, '七':7, '八':8, '九':9, '十':10, '百':100, '千':1000, '万':10000, '亿':100000000}# common_used_numerals= dict(zip(common_used_numerals_tmp.values(), common_used_numerals_tmp.keys())) #反转print(common_used_numerals)def chinese2digits(uchars_chinese): total = 0 r = 1 #表示单位:个十百千... for i in range(len(uchars_chinese) - 1, -1, -1): print(uchars_chinese[i]) val = common_used_numerals_tmp.get(uchars_chinese[i]) if val >= 10 and i == 0: #应对 十三 十四 十*之类 if val > r: r = val total = total + val else: r = r * val #total =total + r * x elif val >= 10: if val > r: r = val else: r = r * val else: total = total + r * val return totalprint (chinese2digits('五百二十') )print ( "-------------------------" )print ( chinese2digits('十八') )print ( "-------------------------" )print ( chinese2digits('一亿零一'))
方法二:
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,}def chinese_to_arabic(cn:str) -> int: unit = 0 # current ldig = [] # digest for cndig in reversed(cn): if cndig in CN_UNIT: unit = CN_UNIT.get(cndig) if unit == 10000 or unit == 100000000: ldig.append(unit) unit = 1 else: dig = CN_NUM.get(cndig) if unit: dig *= unit unit = 0 ldig.append(dig) if unit == 10: ldig.append(10) val, tmp = 0, 0 for x in reversed(ldig): if x == 10000 or x == 100000000: val += tmp * x tmp = 0 else: tmp += x val += tmp return valprint (chinese_to_arabic('五百二十') )print ( "-------------------------" )print (chinese_to_arabic('十八') )print ( "-------------------------" )print (chinese_to_arabic('一亿零一'))
阅读全文
0 0
- Python 中文数字转数字(阿拉伯)
- js阿拉伯变成中文数字
- python 3.2的数字字符转数字
- 数字拼音转数字
- 中文转数字
- JAVA中文转数字
- python字符串转数字
- Python- list转数字
- 中文數字转阿拉伯数组
- java 实验七 之 阿拉伯整数转换为中文大写数字(注意读法)
- android阿拉伯语言的数字
- C++ 数字转字符串 字符串转数字
- 数字转字符串 字符串转数字
- 字符串转数字 数字转字符串
- 字符串转数字 数字转字符串
- javascript 转数字:javascript数字相加
- C++字符串转数字,数字转字符串
- 字符串转数字,数字转字符串
- 200、302、304、404、500等HTTP状态码
- Rhyme/设计模式之单例模式详解—作用、应用场景、优点、五种单例模式实现方式
- 专访汇付数据副总裁姜靖宇:“纸上谈兵”时代终结,人工智能将变革第三方支付行业
- vue-router的那些事儿
- JavaScript求解孪生质数
- Python 中文数字转数字(阿拉伯)
- SSM框架整合后js、css失效问题
- 荐书 | 高可用架构 榨干持续服务潜能 标引一线架构风向
- 能为程序员男友做点什么吗?
- 学习Java中所遇到问题,关于为什么List为什么会设置成接口
- if条件句有大括号和没有大括号的区别
- 研究生日迹-201710月
- java:list实现学生管理类
- Android Studio之BuildConfig类