python实现人民币大写转换


Posted in Python onJune 20, 2018

本文实例为大家分享了python实现人民币大写转换的具体代码,供大家参考,具体内容如下

#!/usr/bin/python
# -*- coding:utf-8 -*-

# ********* 转换方法介绍 *********
# 将需要转换的数字从右向左,每4位分成一个section,如:24530467103,将该数字拆分后,得到:
# 245 3046 7103 (245亿3046万7103)
# 对拆分后的数字先按照section进行数字到汉字的转换,然后添加数值单位,如:仟,佰,拾,处理结束后可以得到转换后的序列。
# 对section处理结束后,再对每个section进行单位的追加。如:兆、亿、万。
# 这里需要注意一些特殊情况,如:section中连续出现0,最后一个数字为0等。

DEBUG = True

upper = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]
decimal_unit = ["角", "分", "厘", "毫"]
section_unit = ["万", "亿", "兆"]
count_unit = ["拾", "佰", "仟"]

def dbg_print(s):
  if DEBUG:
    print(s)

def split_num(num):
  num_list = []
  if (len(num) <= 4):
    num_list.append(num)
    return num_list
  while (len(num)):
    if (len(num) <= 4):
      num_list.append(num)
      num_list.reverse()
      return num_list
    sec = num[-4:]
    num_list.append(sec)
    num = num[:-4]

# 处理小数部分,只支持4位,多于4位,四舍五入。
def convert_dec(num):
  result = ""
  count = 0
  dbg_print(num)
  for i in num:
    n = int(i)
    if (0 != n):
      result += upper[n]
      result += decimal_unit[count]
    count += 1
  dbg_print(result)
  return result

# 处理整数部分
def convert_int(num):
  section_list = split_num(num)
  dbg_print(num)
  dbg_print(section_list)
  result = ""
  sec_index = len(section_list) - 2
  for item in section_list:
    index = len(item) - 2
    # 统计连续出现的数字0的个数。
    flag = 0
    # 计算遍历过的item中的字符数。 
    count = 0
    # 对每个section进行处理,得到数字对应的汉字。
    for i in item:
      n = int(i)
      if (0 == n):
        flag += 1
      else:
        flag = 0
      # 用来区分section的最后一位为0的情况
      if (count != len(item)-1):
        # 该位置的数字为0,并且它的下一个数字非0。
        if ((flag >= 1) and ('0' != item[count+1])):
          result += upper[n]
        else (0 != n):
          result += upper[n]
      else:
        # section的最后一个数字非0的情况。
        if (0 != n):
          result += upper[n]
      # 最后一个数字以及数字为0时,都不需要添加单位。
      if ((index >= 0) and (0 != n)):
        result += count_unit[index]
      index += 1
      count += 1
    从第1个section开始,如果section中的数字不全为0,其后就需要添加section对应的单位。
    if (sec_index >= 0 and flag != count):
      result += section_unit[sec_index]
    dbg_print(result)
    sec_index -= 1
  result = result.replace("壹拾", "拾")
  result += "元"
  return result

# 转换函数
def convert(num):
  result = ""
  num = round(float(num), 4)
  integer,decimal = str(num).split('.')
  result_int = convert_int(integer)
  result_dec = convert_dec(decimal)

  if (len(result_dec) == 0):
    result = result_int += "整"
  else:
    result = result_int + result_dec
  return result

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python简明入门教程
Aug 04 Python
python rsa 加密解密
Mar 20 Python
python3读取MySQL-Front的MYSQL密码
May 03 Python
python3 爬取图片的实例代码
Nov 06 Python
python3+opencv3识别图片中的物体并截取的方法
Dec 05 Python
Python获取航线信息并且制作成图的讲解
Jan 03 Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 Python
使用python模拟高斯分布例子
Dec 09 Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 Python
pytorch构建多模型实例
Jan 15 Python
Django model重写save方法及update踩坑详解
Jul 27 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 Python
python人民币小写转大写辅助工具
Jun 20 #Python
python简易远程控制单线程版
Jun 20 #Python
python通过Windows下远程控制Linux系统
Jun 20 #Python
Python实现求解一元二次方程的方法示例
Jun 20 #Python
python实现NB-IoT模块远程控制
Jun 20 #Python
Python中pandas模块DataFrame创建方法示例
Jun 20 #Python
python自动发送邮件脚本
Jun 20 #Python
You might like
提问的智慧(2)
2006/10/09 PHP
PHP日期处理函数 整型日期格式
2011/01/12 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
2014/05/11 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
2017/08/21 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
微信小程序实现多宫格抽奖活动
2020/04/15 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
如何在python中使用selenium的示例
2017/12/26 Python
一百多行python代码实现抢票助手
2018/09/25 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
深入学习python多线程与GIL
2019/08/26 Python
python实现在内存中读写str和二进制数据代码
2020/04/24 Python
python中rc1什么意思
2020/06/19 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
用css3实现当鼠标移进去时当前亮其他变灰效果
2014/04/08 HTML / CSS
英国在线药房:Express Chemist
2019/03/28 全球购物
一道Delphi上机题
2012/06/04 面试题
党支部公开承诺书
2014/03/28 职场文书
物理教育专业求职信
2014/06/25 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
法学专业大学生实习自我鉴定
2014/10/05 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
大学同学聚会感言
2015/07/30 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书