#!/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. tar 打包文件与解压文件
  2. python中split的用法取第二个分片_python中split()函数的用法
  3. pfSense如何创建和配置VLAN
  4. pycharm如何标记代码?创建代码标签?创建数字标签?收藏代码标签
  5. 动态内存管理:malloc和free以及new和delete的联系与区别
  6. kill所有java进程
  7. cesium 修改 鼠标 样式
  8. 为什么我切换到React Native来创建超级简单的底页
  9. 1981年长城一元硬币值钱吗?
  10. go - range
  11. Github分支管理范例
  12. Unity3D研究院之2D游戏开发制作原理(二十一) 【转】
  13. Java后端编程技术微信群和QQ群
  14. 辽宁粮食产量438亿斤 农业供给侧结构性改革不断优化
  15. 001 MATLAB-plotyy-函数详解
  16. gradient设置上下渐变_CSS3 线性渐变(linear-gradient)
  17. 共享鸡皮疙瘩?庆应大学开发了一种贴身设备,利用腕带和颈带数据,分享刺激感受...
  18. Linux征途服务端启动,linux征途之系统开机流程
  19. 【科研工具】在科研人的浏览器里,多个插件多条路。
  20. word 图片导入不翻转_如何在Microsoft Word中翻转图片

热门文章

  1. 认知空间是什么意思_Number是“数”,one是“一”,那么number one什么意思?
  2. 抢鲜体验:openGauss从源码到主备
  3. 1000行MySQL学习笔记,人手一份,建议收藏!
  4. 触类旁通:那些关于 TBL$OR$IDX$PART$NUM 的诡异案例和知识
  5. 剖析CWE视图的层次定义和解析方式
  6. 云上可靠性测试:让我们一起给开发找点事儿
  7. 看这里!带你快速体验MindSpore V1.0(For ubuntu 18.04)
  8. 【开发者portal在线开发插件系列五】命令的响应,即命令结果的上报(mid的使用)
  9. 带着canvas去流浪系列之九 粒子动画
  10. Robin负载均衡策略存在问题及CSE解决方案