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 相关文章推荐
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
python实现简单ftp客户端的方法
Jun 28 Python
利用Python实现命令行版的火车票查看器
Aug 05 Python
Python用zip函数同时遍历多个迭代器示例详解
Nov 14 Python
Python切片操作实例分析
Mar 16 Python
Pandas 对Dataframe结构排序的实现方法
Apr 10 Python
python3+PyQt5+Qt Designer实现扩展对话框
Apr 20 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
python 中的paramiko模块简介及安装过程
Feb 29 Python
解决numpy矩阵相减出现的负值自动转正值的问题
Jun 03 Python
Python实现我的世界小游戏源代码
Mar 02 Python
python开发飞机大战游戏
Jul 15 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
PHP实现的json类实例
2015/07/28 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
JQuery 操作select标签实现代码
2010/05/14 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
关于js datetime的那点事
2011/11/15 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
2018/08/22 Javascript
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
python3中set(集合)的语法总结分享
2017/03/24 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
html5实现滑块功能之type=&quot;range&quot;属性
2020/02/18 HTML / CSS
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
DataList 能否分页,请问如何实现?
2015/05/03 面试题
事业单位岗位说明书
2015/10/08 职场文书
Go语言特点及基本数据类型使用详解
2022/03/21 Golang