Python将汉字数字转换成阿拉伯数字的方法

Python将汉字数字转换成阿拉伯数字的方法 - 玩蛇网

http://www.iplaypy.com/code/base/b2600.html

Python语言来为不同数字之间做转换之前就有介绍过,今天分享的是用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 [复制]



posted on   yusisc  阅读(295)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· 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工具

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示