#!/usr/bin/python

#-*- encoding: utf-8 -*-

import types

class NotIntegerError(Exception):

pass

class OutOfRangeError(Exception):

pass

_MAPPING = (u'零', u'一', u'二', u'三', u'四', u'五', u'六', u'七', u'八', u'九', )

_P0 = (u'', u'十', u'百', u'千', )

_S4, _S8, _S16 = 10 ** 4 , 10 ** 8, 10 ** 16

_MIN, _MAX = 0, 9999999999999999

def _to_chinese4(num):

'''转换[0, 10000)之间的阿拉伯数字

'''

assert(0 <= num and num < _S4)

if num < 10:

return _MAPPING[num]

else:

lst = [ ]

while num >= 10:

lst.append(num % 10)

num = num / 10

lst.append(num)

c = len(lst) # 位数

result = u''

for idx, val in enumerate(lst):

if val != 0:

result += _P0[idx] + _MAPPING[val]

if idx < c - 1 and lst[idx + 1] == 0:

result += u'零'

return result[::-1].replace(u'一十', u'十')

def _to_chinese8(num):

assert(num < _S8)

to4 = _to_chinese4

if num < _S4:

return to4(num)

else:

mod = _S4

high, low = num / mod, num % mod

if low == 0:

return to4(high) + u'万'

else:

if low < _S4 / 10:

return to4(high) + u'万零' + to4(low)

else:

return to4(high) + u'万' + to4(low)

def _to_chinese16(num):

assert(num < _S16)

to8 = _to_chinese8

mod = _S8

high, low = num / mod, num % mod

if low == 0:

return to8(high) + u'亿'

else:

if low < _S8 / 10:

return to8(high) + u'亿零' + to8(low)

else:

return to8(high) + u'亿' + to8(low)

def to_chinese(num):

if type(num) != types.IntType and type(num) != types.LongType:

raise NotIntegerError(u'%s is not a integer.' % num)

if num < _MIN or num > _MAX:

raise OutOfRangeError(u'%d out of range[%d, %d)' % (num, _MIN, _MAX))

if num < _S4:

return _to_chinese4(num)

elif num < _S8:

return _to_chinese8(num)

else:

return _to_chinese16(num)

if __name__ == '__main__':

print to_chinese(9000)

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

python把数字阿拉伯数字转换成中文10以内_Python实现把数字转换成中文相关推荐

  1. python中文字体下载_Python在Matplotlib图中显示中文字体的操作方法

    1. 说明 本篇主要针对在Ubuntu系统中,matplotlib显示不了中文的问题,尤其是在无法安装系统字体的情况下,解决Python绘图时中文显示的问题. 2. 在系统中安装字体 $ fc-lis ...

  2. python里面如何将数字转换成中文的形式_Python怎么把数字变成中文?

    python将数字转换为中文的方法: 在字典中设置0-9为键,值为数字对应的中文,转换数字时获取字典中指定键对应的值即可.dict1={'0': '零', '1': '一', '2': '二', '3 ...

  3. python把中文转英文_Python 3.0_文本清洗之中文特殊符号转英文特殊符号及全角字符转半角字符...

    在文本清洗的过程,特殊符号的不规范是比较麻烦的事情,所以需要把文本中的特殊符号按照统一的标准处理.以下代码的作用就是将中文的特殊符号统一转成英文的,以及将全角符号转换成半角符号.参考代码# -*- c ...

  4. python规定浮点数类型可以不带小数部分吗_Python标准数据类型-数字

    Python内置了整数.复数.浮点数三种数字类型. 整数 整数是没有小数部分的数值,与数学上的一样: >>> 1 1 >>> -1 -1 整数没有大小限制,只要你的 ...

  5. python两个字典合并为一个新字典_Python合并2个字典成1个新字典的方法(9种)

    字典是Python语言中唯一的映射类型. 映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表. 字典对象是可变的,它是一个容器类型,能存储任意个 ...

  6. java生成随机10位数字_用Java生成10个随机的四位数字

    要生成随机整数,请将Random类与nextInt一起使用.首先,创建一个Random对象-Random rand = new Random(); 上面的Random是一个随机数生成器.现在,一一挑选 ...

  7. 基于Python设计10以内乘法出题器

    1. 项目背景 有正在上小学孩子的父母,就会遇到出乘法口算题的困扰.本文希望使用Python解决出乘法题的困扰. 2.项目函数概览 (1)随机生成乘法题 equation_produce() (2)随 ...

  8. php打印10以内减法表,幼儿10以内减法教案

    教学内容:北京市六年制教材第一册第二单元.教学目的:1.使学生巩固10以内加减法的口算方法.2.通过多种形式的大量练习,使学生能正确.迅速地口算10以内加减法,提高计算能力.3.培养学生良好的计算习惯 ...

  9. 《读九章算术学Python》如何用Python编程实现阿拉伯数字转换成汉字数字?

    第6章 数量转换 Python编程基础 字典 字符串操作 if-elif-else语句 递归 前面的输入和输出都是阿拉伯数字,这一章我们来看一下如何实现阿拉伯数字和汉字数字之间的相互转换. 6.1 阿 ...

最新文章

  1. 深度学习笔记一:稀疏自编码器
  2. 学习笔记——matplotlib学习
  3. 【存储知识学习】第八章-Fibre Channel协议《大话存储》阅读笔记
  4. leetcode42 --- trap
  5. 信息学奥赛一本通 1848:【07NOIP提高组】字符串的展开 | OpenJudge NOI 1.7 35:字符串的展开 | 洛谷 P1098 [NOIP2007 提高组] 字符串的展开
  6. java强制关闭远程桌面_elasticsearch中的java.io.IOException: 远程主机强迫关闭了一个现有的连接...
  7. axure选中状态的值_关于编写Axure的心得
  8. But don‘t be fooled, this phone does not
  9. 拉格朗日中值定理ξ怎么求_【实力干货】!!!高中数学教材之外的常用定理和公式!!!...
  10. 各种音视频编解码学习详解
  11. 2020五一建模:C题 饲料混合加工问题 题解
  12. 银行数据仓库体系实践(14)--数据应用之内部报表及数据分析
  13. WebLogic安装教程
  14. 计算机类课题研究方法,课题研究方法
  15. mycncart 之中国银联在线支付方式
  16. 二层交换机与三层交换机的区别
  17. 微信扫描二维码跳转至浏览器打开 jsp
  18. 分享 10 个高星的创意项目!
  19. win10:Python3.7安装PyQt4
  20. C++核心准则边译边学-P.9 不要浪费时间和空间

热门文章

  1. 实战课堂:系统CPU高消耗的SQL筛选和最佳索引优化
  2. 【“互联网+”大赛华为云赛道】GaussDB命题攻略:支持三种开发语言,轻松完成数据库缓冲池
  3. 一文介绍备机重建各种方法的实现机制
  4. 用好CloudIDE提升Web全栈编码效率
  5. 你应该了解的python 垃圾回收机制
  6. Python3 threading的多线程管理中的线程管理与锁
  7. 【Recorder.js+百度语音识别】全栈方案技术细节
  8. 【Python3网络爬虫开发实战】 1-开发环境配置
  9. ElasticSearch索引
  10. python 列表(list)去掉末尾的0或其他某个字符