国家建设免费论文网站,wordpress主题极简cho,郑州网站设计 公司,金坛市政建设有限公司网站本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法。分享给大家供大家参考#xff0c;具体如下#xff1a;
一、需求
今天写了三千二百行代码。
今天写了3200行代码。
两行意思相同#xff0c;只是表达方式不太能够#xff0c;统一掉。
二、原理
数字的特征是 数字 …本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法。分享给大家供大家参考具体如下
一、需求
今天写了三千二百行代码。
今天写了3200行代码。
两行意思相同只是表达方式不太能够统一掉。
二、原理
数字的特征是 数字 单位例如三百四十二九千零二
可以从后往前遍历遇到的是0到9的数字就乘以前一位的单位遇到新的单位十百千万就替换成数字供下一个数字用。
三、举例
五百四十三
1. 三--3 3 10 : total 3
2. 十--10, 10 ≥10且不为0 r 10
3. 四--4, 410 : total 3 4*10 43
4. 百--100, 10 0≥10且不为0 r 100
5. 五--5, 510 : total 43 5*100 543
四、参考代码
#-*- coding: cp936 -*-
import re
import string
common_used_numerals_tmp {零:0, 一:1, 二:2, 两:2, 三:3, 四:4, 五:5, 六:6, 七:7, 八:8, 九:9, 十:10, 百:100, 千:1000, 万:10000, 亿:100000000}
common_used_numerals {}
for key in common_used_numerals_tmp:
common_used_numerals[key.decode(cp936)] common_used_numerals_tmp[key]
def chinese2digits(uchars_chinese):
total 0
r 1 #表示单位个十百千...
for i in range(len(uchars_chinese) - 1, -1, -1):
val common_used_numerals.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 total
print chinese2digits(两百三十二.decode(cp936))
print -------------------------
print chinese2digits(十二.decode(cp936))
print -------------------------
print chinese2digits(一亿零八万零三百二十三.decode(cp936))
结果PS这里再为大家提供几款数字转换相关工具供大家参考使用
人民币大写在线转换工具http://tools.jb51.net/zhuanhuanqi/rmbupper
在线阿拉伯数字翻译成英文工具http://tools.jb51.net/transcoding/num2english
更多关于Python相关内容感兴趣的读者可查看本站专题《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
本文标题: Python实现中文数字转换为阿拉伯数字的方法示例
本文地址: http://www.cppcns.com/jiaoben/python/192246.html