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 29 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
Apr 25 Python
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
python编码最佳实践之总结
Feb 14 Python
python自动重试第三方包retrying模块的方法
Apr 24 Python
Python实现端口检测的方法
Jul 24 Python
深度辨析Python的eval()与exec()的方法
Mar 26 Python
Python2与Python3的区别实例总结
Apr 17 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
Apr 26 Python
Ubuntu权限不足无法创建文件夹解决方案
Nov 14 Python
python爬虫框架feapde的使用简介
Apr 20 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脚本的10个技巧(1)
2006/10/09 PHP
php实现图片上传并进行替换操作
2016/03/15 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
jquery 表单取值常用代码
2009/12/22 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
python实现电子词典
2020/04/23 Python
利用Psyco提升Python运行速度
2014/12/24 Python
python实现点对点聊天程序
2018/07/28 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
利用Python检测URL状态
2019/07/31 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
浅谈Python协程
2020/06/17 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
python 贪心算法的实现
2020/09/18 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
小学数学教学反思
2014/02/02 职场文书
开会迟到检讨书
2014/02/03 职场文书
不尊敬老师的检讨书
2014/12/21 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server