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中使用Inotify监控文件实例
Feb 14 Python
Python随机读取文件实现实例
May 25 Python
python编程之requests在网络请求中添加cookies参数方法详解
Oct 25 Python
python中urlparse模块介绍与使用示例
Nov 19 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
python删除列表元素的三种方法(remove,pop,del)
Jul 22 Python
python实现BP神经网络回归预测模型
Aug 09 Python
python打印文件的前几行或最后几行教程
Feb 13 Python
python烟花效果的代码实例
Feb 25 Python
python 工具 字符串转numpy浮点数组的实现
Mar 14 Python
利用python绘制数据曲线图的实现
Apr 09 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
Jun 05 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 header()函数使用说明
2008/07/10 PHP
PHP基础知识回顾
2012/08/16 PHP
thinkphp浏览历史功能实现方法
2014/10/29 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
jquery在IE、FF浏览器的差别详细探讨
2013/04/28 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
js脚本实现数据去重
2014/11/27 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
使用JavaScript触发过渡效果的方法
2017/01/19 Javascript
详解Vue2.0 事件派发与接收
2017/09/05 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
2018/11/21 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
2020/07/21 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
使用python调用浏览器并打开一个网址的例子
2014/06/05 Python
Python实现股市信息下载的方法
2015/06/15 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
python 的topk算法实例
2020/04/02 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
如何设置Java的运行环境
2013/04/05 面试题
Javascript如何发送一个Ajax请求
2015/01/26 面试题
股东合作协议书范本
2014/04/14 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
团结演讲稿范文
2014/05/23 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
岳麓书院导游词
2015/02/03 职场文书
教师师德承诺书2016
2016/03/25 职场文书
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python
css3手动实现pc端横向滚动
2022/06/21 HTML / CSS