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素数检测实例分析
Jun 15 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
Dec 24 Python
python中os模块详解
Oct 14 Python
Python爬虫爬取一个网页上的图片地址实例代码
Jan 16 Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 Python
Python安装selenium包详细过程
Jul 23 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
Aug 28 Python
Python的形参和实参使用方式
Dec 24 Python
Python socket处理client连接过程解析
Mar 18 Python
CentOS 7如何实现定时执行python脚本
Jun 24 Python
在pycharm创建scrapy项目的实现步骤
Dec 01 Python
深入解析NumPy中的Broadcasting广播机制
May 30 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
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
php批量删除数据
2007/01/18 PHP
php站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
javascript中数组array及string的方法总结
2014/11/28 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
微信小程序一周时间表功能实现
2019/10/17 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
Python查询IP地址归属完整代码
2017/06/21 Python
Python基于回溯法子集树模板解决全排列问题示例
2017/09/07 Python
详解python实现线程安全的单例模式
2018/03/05 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
英国假发网站:Hothair
2018/02/23 全球购物
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
高中自我评价分享
2013/12/05 职场文书
毕业论文评语大全
2014/04/29 职场文书
教师求职信
2014/06/17 职场文书
CSS完成视差滚动效果
2021/04/27 HTML / CSS
一篇文章学会Vue中间件管道
2021/06/20 Vue.js
Pandas数据类型之category的用法
2021/06/28 Python