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实现随机森林算法的示例
Aug 24 Python
python实现将excel文件转化成CSV格式
Mar 22 Python
python3获取两个日期之间所有日期,以及比较大小的实例
Apr 08 Python
详解Python基础random模块随机数的生成
Mar 23 Python
对python中的float除法和整除法的实例详解
Jul 20 Python
django创建最简单HTML页面跳转方法
Aug 16 Python
Django使用消息提示简单的弹出个对话框实例
Nov 15 Python
matplotlib实现显示伪彩色图像及色度条
Dec 07 Python
django模板获取list中指定索引的值方式
May 14 Python
python使用Word2Vec进行情感分析解析
Jul 31 Python
Python基础之hashlib模块详解
May 06 Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Apr 07 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 面向对象实现代码
2009/11/11 PHP
php学习笔记之面向对象
2014/11/08 PHP
php商品对比功能代码分享
2015/09/24 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
PHP中PCRE正则解析代码详解
2019/04/26 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
jquery转盘抽奖功能实现
2015/11/13 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
2016/06/20 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python 自动补全(vim)
2014/11/30 Python
Python中的两个内置模块介绍
2015/04/05 Python
itchat接口使用示例
2017/10/23 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
Python如何绘制日历图和热力图
2020/08/07 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
python数据抓取3种方法总结
2021/02/07 Python
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
Shell如何接收变量输入
2012/09/24 面试题
秋季开学典礼主持词
2014/03/19 职场文书
经营理念口号
2014/06/21 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书