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

本文实例为大家分享了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() 

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

(0)

相关推荐

  • python将人民币转换大写的脚本代码

    复制代码 代码如下: def Num2MoneyFormat( change_number ):    """    .转换数字为大写货币格式( format_word.__len__() - 3 + 2位小数 )    change_number 支持 float, int, long, string    """    format_word = ["分", "角", "元",   

  • python实现人民币大写转换

    本文实例为大家分享了python实现人民币大写转换的具体代码,供大家参考,具体内容如下 #!/usr/bin/python # -*- coding:utf-8 -*- # ********* 转换方法介绍 ********* # 将需要转换的数字从右向左,每4位分成一个section,如:24530467103,将该数字拆分后,得到: # 245 3046 7103 (245亿3046万7103) # 对拆分后的数字先按照section进行数字到汉字的转换,然后添加数值单位,如:仟,佰,拾,处

  • python2.x实现人民币转大写人民币

    本文实例为大家分享了python实现人民币转大写人民币的具体代码,供大家参考,具体内容如下 直接上代码: # -*- coding: utf-8 -*- def changenum( change_number ): format_num = ["零","壹","贰","叁","肆","伍","陆","柒","捌","

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

    本文实例为大家分享了python人民币大小写转换的具体代码,供大家参考,具体内容如下 大家应该都知道,银行打印账单有时候会跟上人民币的阿拉伯数字以及人民币汉字大写写法,转换的过程中有一定的逻辑难度,较为麻烦,所以笔者心血来潮,花了点时间简单实现了一下这一转换过程,以供初学者参考. 输入样例: 123.22 输出样例: 壹佰贰拾叁圆贰角贰分 参考代码: #!/usr/bin/env python # encoding: utf-8 from __future__ import print_func

  • 自己实现string的substring方法 人民币小写转大写,数字反转,正则优化

    水平有限,不保证我的方案绝对正确,如有错误欢迎指出. 一.自己实现string的substring方法 方法一:用charAt取出截取部分 复制代码 代码如下: String.prototype.mysubstring=function(beginIndex,endIndex){ var str=this, newArr=[]; if(!endIndex){ endIndex=str.length; } for(var i=beginIndex;i<endIndex;i++){ newArr.p

  • python实现微信跳一跳辅助工具步骤详解

    说明 1.windows上安装安卓模拟器,安卓版本5.1以上 2.模拟器里下载安装最新的微信6.6.1 3.最好使用python2.7,python3的pyhook包有bug,解决比较麻烦 步骤 1.windows上安装python2.7,配置好环境变量和pip 2.到这个网站下载对应版本的pyHook和pywin32 http://www.lfd.uci.edu/~gohlke/pythonlibs 2.打开cmd,安装下载好的whl文件和其他库 pip install pywin32-221

  • Java人民币小写转大写字符串的实现

    写了一个人民币小写转大写的方法,Java版本,思路很简单,没有测出什么Bug,有bug欢迎反馈 public class RMBChange { private static String[] nums = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};

  • Python实现数字小写转大写的示例详解

    目录 前言 代码实现 测试 补充 前言 这绝对是个非常有趣的问题哈哈,但用python列表实现就变得比较烧脑,正常人不会非常较真这样的程序,我也只是闲来无事,如果代码还是有bug,那么我也没办法. 注:经过广泛搜索和仔细深究,似乎没有几套开源代码能100%满足要求 参考标准:大小写转换器_人民币大写在线转换工具 代码实现 首先将一个数字根据小数点,进行分割.建立字典和数据集(left_chinese, right_chinese),这里left_chinese不加元,是因为后面可以统一处理,避免

  • python微信跳一跳游戏辅助代码解析

    这个代码实现的是   手动点击起点 和 终点  ,程序自动判断距离.触屏时间  完成跳跃 原理(摘自项目说明页面): 1. 将手机点击到"跳一跳"小程序界面: 2. 用Adb 工具获取当前手机截图,并用adb将截图pull上来: adb shell screencap -p /sdcard/1.png adb pull /sdcard/1.png . 3. 用matplot显示截图: 4. 用鼠标点击起始点和目标位置,计算像素距离: 5. 根据像素距离,计算按压时间: 6. 用Adb工

  • 使用Python制作微信跳一跳辅助

    1.  前言 微信的跳一跳相信大家都很熟悉了,而且现在各种外挂.辅助也是满天飞,反正本人的好友排行榜中已经是八九百都不足为奇了.某宝上一搜一堆结果,最低的居然只要3块多,想刷多少分就刷多少分,真是离谱. 作为一枚程序猿,我决心也自己搞一下,不为别的,一来为了磨练一下自己的解决问题的能力,而来也为了娱乐一下.像这种任务,最适合的当然是Python,丰富的第三方库,而且具有胶水语言的特点. 本程序的主要设计思路就是,PC端adb连接手机→截屏→在PC端展示→用户鼠标选取起点和终点→计算距离.时长→a

  • 用Python实现QQ游戏大家来找茬辅助工具

    好久没写技术相关的文章,这次写篇有意思的,关于一个有意思的游戏--QQ找茬,关于一种有意思的语言--Python,关于一个有意思的库--Qt. 这是一个用于QQ大家来找茬(美女找茬)的辅助外挂,开发的原因是看到老爸天天在玩这个游戏,分数是惨不忍睹的负4000多.他玩游戏有他的乐趣,并不很在意输赢,我做这个也只是自我娱乐,顺便讨他个好,毕竟我们搞编程的实在难有机会在父辈面前露露手.本来是想写个很简单的东西,但由于过程中老爸的多次嘲讽,逼得我不得不尽力完善,最后形成了一个小小的产品. 接触Pytho

  • PHP 实现人民币小写转换成大写的方法及大小写转换函数

    下面一段代码给大家分享php实现人民币大小写转换的方法,具体代码如下所示: <?php header("charset=utf-8;"); function numTrmb($num){ $d = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", &q

  • Java数据开发辅助工具Docker与普通程序使用方法

    目录 介绍 需求背景: 程序的使用方法 Docker 方式: 普通方式 配置文件说明 最后的话 介绍 需求背景: 有很多业务系统,他们的数据库是相互独立的,俗称数据孤岛,为了做数据统计分析,就需要把这些数据归集在一个数据库中,比如数据仓库,然后多表关联查询,方便开发数据应用.希望能有这样的工具,指定两个数据库和表名,就可以将表从源数据库拷贝到目标数据库中.具体需求如下: 能自动同步表结构,如:源表加字段,目标表自动加字段. 支持增量或全量复制数据,比如按日期进行复制数据. 支持指定字段同步,只同

随机推荐