python数字转中文大写_python 数字转换为大写
在会计的时候,用到将数字转换为大写,也就是讲数字转为汉字
外汇出入金流程https://www.fx61.com/supportclass cnumber:
cdict = {}
gdict = {}
xdict = {}
def __init__(self):
self.cdict = {1: u'', 2: u'拾', 3: u'佰', 4: u'仟'}
self.xdict = {1: u'元', 2: u'万', 3: u'亿', 4: u'兆'} # 数字标识符
self.gdict = {0: u'零', 1: u'壹', 2: u'贰', 3: u'叁', 4: u'肆', 5: u'伍', 6: u'陆', 7: u'柒', 8: u'捌', 9: u'玖'}
def csplit(self, cdata): # 拆分函数,将整数字符串拆分成[亿,万,仟]的list
g = len(cdata) % 4
csdata = []
lx = len(cdata) - 1
if g > 0:
csdata.append(cdata[0:g])
k = g
while k <= lx:
csdata.append(cdata[k:k + 4])
k += 4
return csdata
def cschange(self, cki): # 对[亿,万,仟]的list中每个字符串分组进行大写化再合并
lenki = len(cki)
i = 0
lk = lenki
chk = u''
for i in range(lenki):
if int(cki[i]) == 0:
if i < lenki - 1:
if int(cki[i + 1]) != 0:
chk = chk + self.gdict[int(cki[i])]
else:
chk = chk + self.gdict[int(cki[i])] + self.cdict[lk]
lk -= 1
return chk
def cwchange(self, data):
cdata = str(data).split('.')
cki = cdata[0]
if len(cdata) == 1:
i = 0
chk = u''
cski = self.csplit(cki) # 分解字符数组[亿,万,仟]三组List:['0000','0000','0000']
ikl = len(cski) # 获取拆分后的List长度
# 大写合并
for i in range(ikl):
if self.cschange(cski[i]) == '': # 有可能一个字符串全是0的情况
chk = chk + self.cschange(cski[i]) # 此时不需要将数字标识符引入
else:
chk = chk + self.cschange(cski[i]) + self.xdict[ikl - i] # 合并:前字符串大写+当前字符串大写+标识符
chk = chk + u'整'
else:
i = 0
chk = u''
cski = self.csplit(cki) # 分解字符数组[亿,万,仟]三组List:['0000','0000','0000']
ikl = len(cski) # 获取拆分后的List长度
# 大写合并
for i in range(ikl):
if self.cschange(cski[i]) == '': # 有可能一个字符串全是0的情况
chk = chk + self.cschange(cski[i]) # 此时不需要将数字标识符引入
else:
chk = chk + self.cschange(cski[i]) + self.xdict[ikl - i] # 合并:前字符串大写+当前字符串大写+标识符
# 处理小数部分
ckj = cdata[1]
lenkj = len(ckj)
if lenkj == 1: # 若小数只有1位
if int(ckj[0]) == 0:
chk = chk + u'整'
else:
chk = chk + self.gdict[int(ckj[0])] + u'角整'
else: # 若小数有两位的四种情况
if int(ckj[0]) == 0 and int(ckj[1]) != 0:
chk = chk + u'零' + self.gdict[int(ckj[1])] + u'分'
elif int(ckj[0]) == 0 and int(ckj[1]) == 0:
chk = chk + u'整'
elif int(ckj[0]) != 0 and int(ckj[1]) != 0:
chk = chk + self.gdict[int(ckj[0])] + u'角' + self.gdict[int(ckj[1])] + u'分'
else:
chk = chk + self.gdict[int(ckj[0])] + u'角整'
return chk
if __name__ == '__main__':
pt = cnumber()
print(pt.cwchange('14524')) # 壹万肆仟伍佰贰拾肆元整
python数字转中文大写_python 数字转换为大写相关推荐
- python数字转中文字符_Python实现中文数字转换为阿拉伯数字的方法示例
本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉 ...
- python中int函数规则_python数字规则和内建函数
python字符串补充: 字符串对象须当作参数的方法(非str.capitalize()形式): 1.str(obj)--将对象转化为字符串 2.len(str)--计算字符串长度 3.max(str ...
- python数字形式转换代码_Python数字(number)
简介 数字(number)是不可更改的类型,因此变更数字会生成新的对象,重新分配内存空间. Python3中支持三种数值类型: 整型(int):又称整数.Python3中整型没有限制大小,因此不包括p ...
- python图片的高级处理_python数字图像处理(18):高级形态学处理
形态学处理,除了最基本的膨胀.腐蚀.开/闭运算.黑/白帽处理外,还有一些更高级的运用,如凸包,连通区域标记,删除小块区域等. 1.凸包 凸包是指一个凸多边形,这个凸多边形将图片中所有的白色像素点都包含 ...
- python画椭圆形函数算法_python数字图像处理(12):基本图形的绘制
图形包括线条.圆形.椭圆形.多边形等. 在skimage包中,绘制图形用的是draw模块,不要和绘制图像搞混了. 1.画线条 函数调用格式为: skimage.draw.line(r1,c1,r2,c ...
- 【关于工具类的使用】中文拼音首字母转换为大写
业务场景:在我们实际业务开发中,会遇到生成较为开放类型的活动编号等,有对应的生成规则,比如需要将当前参与用户人名的中文拼音的首字母大小写取到,在加上时间戳信息等等.这里应用到一个解决方案. 1.导入相 ...
- python idea控制台中文乱码_python 解决cv2绘制中文乱码问题
python 解决cv2绘制中文乱码问题 因为使用cv2.putText() 只能显示英文字符,中文会出现乱码问题, 因此使用PIL在图片上绘制添加中文,可以指定字体文件. 大体思路: OpenCV图 ...
- python能print中文吗_python怎么print汉字
今天就为大家分享一篇python中使用print输出中文的方法,具有很好的参考价值,希望对大家有所帮助. 看Python简明教程,学习使用print打印字符串,试了下打印中文,不行.(推荐学习:Pyt ...
- python json loads 中文乱码_python实现智能语音天气预报
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 飞奔的帅帅 PS:如有需要Python学习资料的小伙伴可以加点击下 ...
最新文章
- [转载]地球物理经典书目——成像方向
- Linux之ubuntu的root无法连接FTP
- VSFTP服务--Linux学习笔记
- java数据库表不存在_如果Java生产代码中不存在并在JUnit中确认,则创建数据库表...
- 史上最全的微服务知识科普
- 转: SVN和Git的一些用法总结
- php 什么时候使用单例,php什么时候使用单例模式
- history模式 nginx配置_nginx反向代理部署vue项目(history模式)的方法
- 【MTSP】基于matlab粒子群优化蚁群算法求解多旅行商问题【含Matlab源码 1616期】
- 安卓psp模拟器哪个好_更完美!安卓PSP模拟器PPSSPP 0.9.9发布
- 什么是CPS模式盈利?
- 风险预测模型_慢乙肝患者的HCC风险预测模型——精准医学的希望|高分综述
- MATLAB并行计算
- web前端全栈0基础到精通(祺)10
- 计算机系统概论基本知识
- D3.js的技术预研
- 使用xadmin搜索search_fields报错:Related Field got invalid lookup: icontains
- ModuleNotFoundError: No module named ‘official‘
- oracle 数据库中 connect by 和level 的用法
- LCS LIS LICS
热门文章
- R3Det: Refined Single-Stage Detector with Feature Refinementfor Rotating Object论文学习
- Android之打开APP部分页面(Activity)的一瞬间手机状态栏会变成蓝色解决办法
- 远期、期货和互换(一)
- Android 使用高德SDK编写周边搜索定位
- 因果推断与因果性学习研究进展
- 最新引流脚本之窃语漂流瓶引流脚本,如何使用窃语脚本
- 吉林大学高级程序设计(红皮书例题)(1~7章)
- Python实战小项目—绘制玫瑰花送给女朋友叭
- Matlab LZW编码
- 基于Springboot的Java项目--新冠疫情统计系统