# -*- coding: utf-8 -*-
# 最大值:九兆九千九百九十九亿九千九百九十九万九千九百九十九
import re
p = ['', '十', '百', '千', '万', '十', '百', '千', '亿', '十', '百', '千', '兆']
s = ['', '一', '二', '三', '四', '五', '六', '七', '八', '九']
def num2zh(num_str):
res = ''
t = list(str(num_str))
t.reverse()
for idx, tmp in enumerate(t):
if int(tmp) == 0:
res = '零' + res
if idx % 4 == 0 and idx > 0:
res = p[idx] + res
continue
res = s[int(tmp)] + p[idx] + res
# 零+ -> 零
out = re.sub(r'(\xe9\x9b\xb6)+', '零', res)
# 零万 -> 万
out = re.sub(r'\xe9\x9b\xb6\xe4\xb8\x87', '万', out)
# 一十 -> 十
out = re.sub(r'(^\xe4\xb8\x80\xe5\x8d\x81)', '十', out)
# 零亿 -> 亿
out = re.sub(r'\xe9\x9b\xb6\xe4\xba\xbf', '亿', out)
# 亿万 -> 亿
out = re.sub(r'\xe4\xba\xbf\xe4\xb8\x87', '亿', out)
# 兆亿 -> 兆
out = re.sub(r'\xe5\x85\x86\xe4\xba\xbf', '兆', out)
# 去掉最后的零
out = re.sub(r'(\xe9\x9b\xb6)$', '', out)
return out
print(num2zh(1234))

数字转中文大写=> 1234=> 一千二百三十四的更多相关文章

  1. 数据库的范式,第一、二、三、四、五范式、BC范式

    数据库的规范化(上一篇博客有写到)的程度不同,便有了这么多种范式.数据库范式是数据库设计必不可少的知识,没有对范式的理解,就无法设计出高效率.优雅的数据库,甚至设计出错误误的数据库.课本中的定义比较抽 ...

  2. java实现数字转中文大写

    package cn.aikang.ChineseC; import java.util.Scanner; /** * @Description: TODO(这里用一句话描述这个类的作用) * @Au ...

  3. 【OBJC】数字转中文大写

    博客园都不知道怎么外链图片…… - (void)numToString:(double)num{ ; NSMutableString *szChMoney = [[NSMutableString al ...

  4. PHP人民币金额数字转中文大写的函数

    <?php header("Content-Type:text/html;charset=utf-8"); error_reporting(2); function cny( ...

  5. SQL 数字转为中文大写

    USE [SPECIAL_BLD]GO SET ANSI_NULLS ONGO SET QUOTED_IDENTIFIER ONGO CREATE FUNCTION [dbo].[get_upper] ...

  6. Android笔记三十四.Service综合实例二

    综合实例2:client訪问远程Service服务 实现:通过一个button来获取远程Service的状态,并显示在两个文本框中. 思路:如果A应用须要与B应用进行通信,调用B应用中的getName ...

  7. Python学习日记(三十四) Mysql数据库篇 二

    外键(Foreign Key) 如果今天有一张表上面有很多职务的信息 我们可以通过使用外键的方式去将两张表产生关联 这样的好处能够节省空间,比方说你今天的职务名称很长,在一张表中就要重复的去写这个职务 ...

  8. Java开发学习(三十四)----Maven私服(二)本地仓库访问私服配置与私服资源上传下载

    一.本地仓库访问私服配置 我们通过IDEA将开发的模块上传到私服,中间是要经过本地Maven的 本地Maven需要知道私服的访问地址以及私服访问的用户名和密码 私服中的仓库很多,Maven最终要把资源 ...

  9. 第六百一十二、三、四、五天 how can I 坚持

    上火了啊..已经2017了,真快,人生只是一瞬间,到头来都是一场空. 2016年最后一天,很悲催,没赶上火车.还不能改签,哪能哪次都这么幸运,长记性了,下午到济南,看了看弟弟的房子,到挺不错,就是装修 ...

随机推荐

  1. 关于数据库text字段

    问题描述: maven项目中,使用MBG代码生成器自动生成的实体类对象时,当数据库中表的字段有 text 类型时,对应到java类中是String类型的,在前端页面通过ajax获取到 json 格式的 ...

  2. MFC双缓冲

    大家都知道包括windows桌面在内我们看到的一切都是系统画上去的,windows桌面就相当于一个黑板: <1>普通绘图就是直接在我们看得到的黑板上绘图 <2>双缓冲就是先在一 ...

  3. 21 ~ express ~ 前台内容分类展示

    一,前台 , views/main/index.html ,通过get传送给后台 思路 : 将栏目ID 传递给后台,后台根据 栏目的ID 返回相应的数据   {% if category == '' ...

  4. 19 ~ express ~ 文章的增加 , 查看 ,修改 ,删除

    一,前台 1,添加文章 /views/admin/content_add.html {% extends 'layout.html' %} {% block main %} <ol class= ...

  5. Mac系统Snail SVN 精简版配置比较、合并工具:Beyond Compare及破解

    Mac系统 Beyond Compare及破解 前言 在上一篇文章:Mac系统的SVN客户端:Snail SVN 精简版 介绍了在mac系统中svn客户端使用的是snail svn,但是当我想要把本地 ...

  6. LeetCode 124. Binary Tree Maximum Path Sum 二叉树中的最大路径和 (C++/Java)

    题目: Given a non-empty binary tree, find the maximum path sum. For this problem, a path is defined as ...

  7. ucosiii 学习笔记

    OSTaskCreate 的参数中有一个 void *p_ext,这个参数用来传递额外的信息,可以用来传递数组,结构体等等. AppTaskStart --> CPU_Init --> C ...

  8. bugku-Web flag.php

    打开网页发现并没有什么,试了很多次没用. 其实题目中提示了hint,我们就传递一个hint=1试试,发现出现了代码: <?php error_reporting(0); include_once ...

  9. argv从控制台输入多个参数

    arg多个参数: #!/usr/bin/env python3 import sys #控制台要输入的两个参数格式为:python script_name.py 参数1 参数2 input_file= ...

  10. Javascript里EQ、NE、GT、LT、GE、LE含义

    EQ 就是 EQUAL等于 NE就是 NOT EQUAL不等于 GT 就是 GREATER THAN大于  LT 就是 LESS THAN小于 GE 就是 GREATER THAN OR EQUAL ...