Python将汉字数字转换成阿拉伯数字的方法
Python将汉字数字转换成阿拉伯数字的方法 - 玩蛇网
http://www.iplaypy.com/code/base/b2600.html
用Python语言来为不同数字之间做转换之前就有介绍过,今天分享的是用Python将汉字数字转换成阿拉伯数字的方法。汉字数字就是我们的大写数字:零、壹、贰、叁、肆、伍、陆、柒、捌、玖、拾,这种只有在会计人员才会常用的数字。
Python把用汉字表示的数字转换为阿拉伯数字前,需要先用到字典形式,做个对照好方便我们查找转换。
Python将汉字数字转换成阿拉伯数字的方法,源码如下(供参考):
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 # 当前的单位 ldig = [] # 临时数组 while lcn: cndig = lcn.pop() if CN_UNIT.has_key(cndig): unit = CN_UNIT.get(cndig) if unit == 10000: ldig.append('w') # 标示万位 unit = 1 elif unit == 100000000: ldig.append('y') # 标示亿位 unit = 1 elif unit == 1000000000000: # 标示兆位 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的数字 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数字转换相关文章推荐:
1、用Python将罗马数字转换为阿拉伯数字的方法
2、Python实现金额大小写转换的方法
玩蛇网文章,转载请注明出处和文章网址:http://www.iplaypy.com/code/base/b2600.html [复制]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具