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 登录网站详解及实例
Apr 11 Python
Python实现的中国剩余定理算法示例
Aug 05 Python
python去掉空白行的多种实现代码
Mar 19 Python
Python3实现的字典遍历操作详解
Apr 18 Python
Python爬虫将爬取的图片写入world文档的方法
Nov 07 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
Python检查ping终端的方法
Jan 26 Python
python数据化运营的重要意义
Nov 25 Python
Python新手学习标准库模块命名
May 29 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
如何利用Matlab制作一款真正的拼图小游戏
May 11 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 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仿discuz分页效果代码
2008/10/02 PHP
PHP 在线翻译函数代码
2009/05/07 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
2017/04/03 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
js chrome浏览器判断代码
2010/03/28 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
js实现无缝轮播图
2020/03/09 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
在Python中利用Into包整洁地进行数据迁移的教程
2015/03/30 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
Python常用数据分析模块原理解析
2020/07/20 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
2021/03/02 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
采购员岗位职责
2013/11/15 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
节水宣传标语口号
2015/12/26 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS