#!/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. const 的作用?
  2. 丽水松阳计算机职业高中学校,丽水松阳职专
  3. 服务器怎么打开数据库文件夹,服务器怎么打开数据库文件夹下
  4. mysql root 权限注入_Mysql注入root权限直接写一句话马
  5. 2019年3月20日 894. All Possible Full Binary Trees
  6. Linux下mysql设置密码
  7. 算数运算加法_为什么计算机能“算数”
  8. 新年继续发红包,1500元!
  9. P1556 幸福的路
  10. Web框架——Flask系列之数据库迁移(二十)
  11. vue使用 xterm_为什么我坚持使用xterm
  12. 自然语言项目之Python语种检测代码实现
  13. 天津医科大学计算机科学与技术,天津医科大学生物医学工程学院
  14. github 改善网速
  15. 有的时候print函数不会立即打印的解决办法(flush=True)
  16. 网络工程师考试试题及答案+SUV
  17. SpringCloud分布式开发理解
  18. [年终总结]这就是2016的我
  19. Redis - 一个简单的抢红包小项目
  20. chrome+油猴插件+IDM实现百度网盘大文件的高速下载

热门文章

  1. MySQL checkpoint机制详解
  2. 【现场福利+直播通道】2020数据技术嘉年华正式“菜单”出炉,饕餮盛宴等你共享!...
  3. SQL、NoSQL、NewSQL,论开源之路谁主沉浮
  4. 遇见未来 | 对话王璞:谈分布式系统在企业落地的挑战
  5. 理清逻辑,确保云原生时代应用开发的全生命周期安全
  6. 基于实例数据详解准确率和召回率
  7. 常用的echo和cat,这次让我折在了特殊字符丢失问题上
  8. AI论文解读:基于Transformer的多目标跟踪方法TrackFormer
  9. 经典永流传,华为云媒体 AI 让老电影焕发新生
  10. 关于物联网规则引擎技术,你想要知道的都在这儿!