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 04 Python
Python变量和数据类型详解
Feb 15 Python
如何优雅地改进Django中的模板碎片缓存详解
Jul 04 Python
Python+OpenCV实现图像融合的原理及代码
Dec 03 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 Python
python 实现读取一个excel多个sheet表并合并的方法
Feb 12 Python
python设置随机种子实例讲解
Sep 12 Python
python Shapely使用指南详解
Feb 18 Python
selenium WebDriverWait类等待机制的实现
Mar 18 Python
python实现扑克牌交互式界面发牌程序
Apr 22 Python
Python爬虫入门教程01之爬取豆瓣Top电影
Jan 24 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
Jun 22 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
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
十天学会php之第三天
2006/10/09 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
php file_get_contents函数轻松采集html数据
2010/04/22 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
试用php中oci8扩展
2015/06/18 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
JQuery实现Ajax加载图片的方法
2015/12/24 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
JSONP跨域请求
2017/03/02 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
如何使用Python抓取网页tag操作
2020/02/14 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
Python如何实现机器人聊天
2020/09/10 Python
Python编写单元测试代码实例
2020/09/10 Python
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
如何使用PHP session
2015/04/21 面试题
项目专员岗位职责
2013/12/04 职场文书
便利店的创业计划书
2014/01/15 职场文书
师德师风自查总结
2014/10/14 职场文书
道路交通事故人身损害赔偿协议书
2014/11/19 职场文书
2014年营销工作总结
2014/11/22 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
win10清理dns缓存
2022/04/19 数码科技
使用Python开发冰球小游戏
2022/04/30 Python