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 getopt 参数处理小示例
Jun 09 Python
在python中的socket模块使用代理实例
May 29 Python
python中MySQLdb模块用法实例
Nov 10 Python
常用python编程模板汇总
Feb 12 Python
Python利用Beautiful Soup模块修改内容方法示例
Mar 27 Python
Python中执行存储过程及获取存储过程返回值的方法
Oct 07 Python
Python装饰器(decorator)定义与用法详解
Feb 09 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
Python之lambda匿名函数及map和filter的用法
Mar 05 Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
Python数据分析之绘图和可视化详解
Jun 02 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
phpmyadmin操作流程
2006/10/09 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
javascript 限制输入和粘贴(IE,firefox测试通过)
2008/11/14 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
javascript设计模式之中介者模式Mediator
2014/12/30 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
vue自定义指令实现方法详解
2019/02/11 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
Python中无限元素列表的实现方法
2014/08/18 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
Python实现定时任务
2017/02/08 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
TensorFlow绘制loss/accuracy曲线的实例
2020/01/21 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
python实现简单文件读写函数
2021/02/25 Python
财务出纳员岗位职责
2013/11/26 职场文书
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
《音乐之都维也纳》教学反思
2014/04/16 职场文书
秋天的雨教学反思
2014/04/27 职场文书
初中作文评语集锦
2014/12/25 职场文书
以权谋私检举信范文
2015/03/02 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS