微信小程序> Python小程序--人民币小写转大写辅助工具

Python小程序--人民币小写转大写辅助工具

浏览量:2642 时间: 来源:雨者

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


输入样例:


123.22


输出样例:


壹佰贰拾叁圆贰角贰分



参考代码:


#!/usr/bin/env python# encoding: utf-8from __future__ import print_functionimport sysimport reimport base64import timeimport osimport getpassreload(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 = 0dot_count = 0in_str = raw_input("Please input number : ")for i in in_str:if i == '.':dot_count += 1elif ord(i) = ord('z') and ord(i) = ord('A'):print("Error")returnif len(in_str)  12 or dot_count  1:print("Error")returnin_str = unicode(in_str).decode("utf8")out_str = ""if in_str.find('.') != -1:flag = 1sum_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 !!")returnif 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':continueelif end_flag == 'n' or end_flag == 'N':breakelse:print("Error!!")breakif __name__ == '__main__':main()


版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎