python人民币小写转大写辅助工具


Posted in Python onJune 20, 2018

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

大家应该都知道,银行打印账单有时候会跟上人民币的阿拉伯数字以及人民币汉字大写写法,转换的过程中有一定的逻辑难度,较为麻烦,所以笔者心血来潮,花了点时间简单实现了一下这一转换过程,以供初学者参考。

输入样例:

123.22

输出样例:

壹佰贰拾叁圆贰角贰分

参考代码:

#!/usr/bin/env python 
# encoding: utf-8 
 
from __future__ import print_function 
import sys 
import re 
import base64 
import time 
import os 
import getpass 
 
reload(sys) 
 
sys.setdefaultencoding("utf-8") 
 
 
char_arr_01 = [u"零".decode("utf8"), u"壹".decode("utf8"), u"贰".decode("utf8"), u"叁".decode("utf8"), u"肆".decode( 
  "utf8"), u"伍".decode("utf8"), u"陆".decode("utf8"), u"柒".decode("utf8"), u"捌".decode("utf8"), u"玖".decode("utf8")]; 
char_arr_02 = [u"圆".decode("utf8"), u"拾".decode("utf8"), u"佰".decode("utf8"), u"仟".decode("utf8"), u"万".decode("utf8"), u"拾".decode("utf8"), u"佰".decode("utf8"), u"仟".decode( 
  "utf8"), u"亿".decode("utf8"), u"拾".decode("utf8"), u"佰".decode("utf8"), u"仟".decode("utf8"), u"万".decode("utf8"), u"拾".decode("utf8"), u"佰".decode("utf8")] 
char_arr_03 = [u"分".decode("utf8"), u"角".decode("utf8")] 
 
def calcRMB(): 
  sum_arr = [] 
  in_str_dot = "" 
  in_str_Big = "" 
  flag = 0 
  dot_count = 0 
  in_str = raw_input("Please input number : ") 
  for i in in_str: 
    if i == '.': 
      dot_count += 1 
    elif ord(i) <= ord('z') and ord(i) >= ord('A'): 
      print("Error") 
      return 
  if len(in_str) > 12 or dot_count > 1: 
    print("Error") 
    return 
  in_str = unicode(in_str).decode("utf8") 
  out_str = "" 
  if in_str.find('.') != -1: 
    flag = 1 
  sum_arr = in_str.split('.') 
  in_str_Big = sum_arr[0] 
  if flag==1: 
    in_str_dot = sum_arr[1] 
  for i in range(len(in_str_Big)): 
    if cmp(in_str_Big[i],'0') == 0 and (len(in_str_Big)-1-i)%4 != 0: 
      out_str = out_str + char_arr_01[ord(in_str_Big[i])-ord('0')] 
    else: 
      out_str = out_str + char_arr_01[ord(in_str_Big[i])-ord('0')] 
      out_str = out_str + char_arr_02[len(in_str_Big)-1-i] 
  while out_str.find(u"零零".decode("utf8")) != -1: 
    out_str = out_str.replace(u"零零".decode("utf8"), u"零".decode("utf8")) 
  out_str = out_str.replace(u"零亿".decode("utf8"),u"亿".decode("utf8")) 
  out_str = out_str.replace(u"零万".decode("utf8"),u"万".decode("utf8")) 
  if out_str != u"零元".decode("utf8"): 
    out_str = out_str.replace(u"零圆".decode("utf8"),u"圆".decode("utf8")) 
  if len(in_str_dot) > 2 and flag == 1: 
    print("False !!") 
    return 
  if flag == 1: 
    for i in range(len(in_str_dot)): 
      out_str = out_str + char_arr_01[ord(in_str_dot[i])-ord('0')] 
      out_str = out_str + char_arr_03[len(in_str_dot)-1-i] 
 
  print(out_str) 
 
def main(): 
  while 1: 
    os.system("cls") 
    calcRMB() 
    print() 
    end_flag = raw_input("Try Again ? (y/n)") 
    if end_flag == 'y' or end_flag == 'Y': 
      continue 
    elif end_flag == 'n' or end_flag == 'N': 
      break 
    else: 
      print("\nError!!") 
      break 
 
if __name__ == '__main__': 
  main()

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

Python 相关文章推荐
Python装饰器使用示例及实际应用例子
Mar 06 Python
简单介绍Python的轻便web框架Bottle
Apr 08 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
python 与GO中操作slice,list的方式实例代码
Mar 20 Python
使用tensorflow实现AlexNet
Nov 20 Python
Python实现图片尺寸缩放脚本
Mar 10 Python
python tkinter界面居中显示的方法
Oct 11 Python
mac PyCharm添加Python解释器及添加package路径的方法
Oct 29 Python
Golang GBK转UTF-8的例子
Aug 26 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
Feb 17 Python
python实现简单的tcp 文件下载
Sep 16 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
Python使用numpy模块创建数组操作示例
Jun 20 #Python
You might like
在同一窗体中使用PHP来处理多个提交任务
2006/10/09 PHP
php5.2.0内存管理改进
2007/01/22 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
解放web程序员的输入验证
2006/10/06 Javascript
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
2018/05/27 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
Python类属性与实例属性用法分析
2015/05/09 Python
python发送邮件功能实现代码
2016/07/15 Python
Python 性能优化技巧总结
2016/11/01 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
​如何愉快地迁移到 Python 3
2019/04/28 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
GANT英国官方网上商店:甘特衬衫
2018/02/06 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
费用会计岗位职责
2014/01/01 职场文书
捐款倡议书
2014/04/14 职场文书
文明寝室标语
2014/06/13 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
应聘教师自荐信
2015/03/26 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
设置IIS Express并发数
2022/07/07 Servers