python中将阿拉伯数字转换成中文的实现代码


Posted in Python onMay 19, 2011
#!/usr/bin/python 
#-*- encoding: utf-8 -*- 
import types 
class NotIntegerError(Exception): 
pass 
class OutOfRangeError(Exception): 
pass 
_MAPPING = (u'零', u'一', u'二', u'三', u'四', u'五', u'六', u'七', u'八', u'九', ) 
_P0 = (u'', u'十', u'百', u'千', ) 
_S4, _S8, _S16 = 10 ** 4 , 10 ** 8, 10 ** 16 
_MIN, _MAX = 0, 9999999999999999 
def _to_chinese4(num): 
'''''转换[0, 10000)之间的阿拉伯数字 
''' 
assert(0 <= num and num < _S4) 
if num < 10: 
return _MAPPING[num] 
else: 
lst = [ ] 
while num >= 10: 
lst.append(num % 10) 
num = num / 10 
lst.append(num) 
c = len(lst) # 位数 
result = u'' 
for idx, val in enumerate(lst): 
if val != 0: 
result += _P0[idx] + _MAPPING[val] 
if idx < c - 1 and lst[idx + 1] == 0: 
result += u'零' 
return result[::-1].replace(u'一十', u'十') 
def _to_chinese8(num): 
assert(num < _S8) 
to4 = _to_chinese4 
if num < _S4: 
return to4(num) 
else: 
mod = _S4 
high, low = num / mod, num % mod 
if low == 0: 
return to4(high) + u'万' 
else: 
if low < _S4 / 10: 
return to4(high) + u'万零' + to4(low) 
else: 
return to4(high) + u'万' + to4(low) 
def _to_chinese16(num): 
assert(num < _S16) 
to8 = _to_chinese8 
mod = _S8 
high, low = num / mod, num % mod 
if low == 0: 
return to8(high) + u'亿' 
else: 
if low < _S8 / 10: 
return to8(high) + u'亿零' + to8(low) 
else: 
return to8(high) + u'亿' + to8(low) 
def to_chinese(num): 
if type(num) != types.IntType and type(num) != types.LongType: 
raise NotIntegerError(u'%s is not a integer.' % num) 
if num < _MIN or num > _MAX: 
raise OutOfRangeError(u'%d out of range[%d, %d)' % (num, _MIN, _MAX)) 
if num < _S4: 
return _to_chinese4(num) 
elif num < _S8: 
return _to_chinese8(num) 
else: 
return _to_chinese16(num) 
if __name__ == '__main__': 
print to_chinese(9000)

把金额小写转换成大写的Python代码
功能将小于十万亿元的小写金额转换为大写
代码
def IIf( b, s1, s2): 

if b: 


return s1 

else: 


return s2 
def num2chn(nin=None): 


cs = 
('零','壹','贰','叁','肆','伍','陆','柒','捌','玖','◇','分','角','圆','拾','佰','仟', 
'万','拾','佰','仟','亿','拾','佰','仟','万') 


st = ''; st1='' 


s = '%0.2f' % (nin)

 


sln =len(s) 


if sln >; 15: return None 


fg = (nin<1) 


for i in range(0, sln-3): 




ns = ord(s[sln-i-4]) - ord('0') 




st=IIf((ns==0)and(fg or (i==8)or(i==4)or(i==0)), '', cs[ns]) 



+ IIf((ns==0)and((i<>;8)and(i<>;4)and(i<>;0)or fg 
and(i==0)),'', cs[i+13]) 



+ st 




fg = (ns==0) 


fg = False 


for i in [1,2]: 




ns = ord(s[sln-i]) - ord('0') 




st1 = IIf((ns==0)and((i==1)or(i==2)and(fg or (nin<1))), '', cs[ns]) 



 + IIf((ns>;0), cs[i+10], IIf((i==2) or fg, '', '整')) 



 + st1 




fg = (ns==0) 


st.replace('亿万','万') 


return IIf( nin==0, '零', st + st1) 
if __name__ == '__main__': 

num = 12340.1 

print num 

print num2chn(num)
Python 相关文章推荐
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 Python
python使用arcpy.mapping模块批量出图
Mar 06 Python
python模糊图片过滤的方法
Dec 14 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
Jan 29 Python
python lambda表达式在sort函数中的使用详解
Aug 28 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
python数值基础知识浅析
Nov 19 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 Python
win10系统下python3安装及pip换源和使用教程
Jan 06 Python
tensorflow保持每次训练结果一致的简单实现
Feb 17 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
Jun 03 Python
python访问纯真IP数据库的代码
May 19 #Python
Python模块学习 re 正则表达式
May 19 #Python
PYTHON正则表达式 re模块使用说明
May 19 #Python
python 随机数生成的代码的详细分析
May 15 #Python
python 生成不重复的随机数的代码
May 15 #Python
精确查找PHP WEBSHELL木马的方法(1)
Apr 12 #Python
Python中删除文件的程序代码
Mar 13 #Python
You might like
php magic_quotes_gpc的一点认识与分析
2008/08/18 PHP
非常精妙的PHP递归调用与静态变量使用
2012/12/16 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
比较详细的关于javascript 解析json的代码
2009/12/16 Javascript
Javascript Object.extend
2010/05/18 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
nodejs集成sqlite使用示例
2017/06/05 NodeJs
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
大学生毕业求职自荐书范文
2014/02/04 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
放飞理想演讲稿
2014/09/09 职场文书
2015年技术员工作总结
2015/04/10 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
2016特色励志班级口号
2015/12/24 职场文书
讨论nginx location 顺序问题
2022/05/30 Servers