大家好,我是Kamen Black君,今天给大家介绍一个小技巧:如何用Python 代码实现阿拉伯数字转化为中文数字。

都说光阴似箭,日月如梭,2022年的车轮很快也要驶向了终点。不知道大家在平常的生活中,有没有碰到过一些关于数字转化的问题,比如上编程课时经常能遇到的二进制数转化为十进制、八进制或者十六进制;还有银行转账时能够碰到的中文大写数字。

print("祝大家每天快乐,love and peace!")

而值此圣诞佳节,我就贡献一下个人的绵薄之力,向大家展示一下我个人研究的简易的通过Python实现的将阿拉伯数字转化为中文数字的方法,搭建一条东西方的桥梁。

这个方法主要通过Python代码进行实现,其中代码主要由三大部分组成:

1、数字字典;

2、计算数字最大位的函数;

3、数字转换主函数。

一、首先是数字字典:

这个部分主要涉及到两个字典的编写:个位数字典与位称字典。

个位数字典自然是将0到9的阿拉伯数字与“零”到“九”的中文数字进行配对;而位称字典则是从1到4对应“十”、“百”、“千”、“万”这4个位数称谓,简称为“位称”。

numdict = {1:"一",2:"二",3:"三",4:"四",5:"五",6:"六",7:"七",8:"八",9:"九",0:"零"} #个位数的字典
digitdict = {1:"十",2:"百",3:"千",4:"万"} #位称的字典

二、其次是计算数字最大位的函数:

这个部分是通过函数计算出阿拉伯数字的最大位,也就是确定中文数字的最大位,以便确定中文数字的命名规则。

def maxdigit(number,count):num = number//10 #整除是//if num != 0:return maxdigit(num,count+1) #加上return才能进行递归else:digit_num = number%10 #digit_num是最高位上的数字return count,digit_num #count记录最高位

三、最后是数字转换主函数:

这个部分结合第一、第二部分与各位数字以及中文数字的命名规则,便可以得到阿拉伯数字对应的中文数字。

def No2Cn(number):max_digit,digit_num = maxdigit(number,0)temp = numbernum_list = [] #储存各位数字while temp > 0:position = temp%10temp //= 10 #整除是//num_list.append(position)chinese = ""if max_digit == 0: #个位数chinese = numdict[number]elif max_digit == 1: #十位数if digit_num == 1: #若十位上是1,则称为“十几”,而一般不称为“一十几”(与超过2位的数分开讨论的原因)chinese = "十"+numdict[num_list[0]]else:chinese = numdict[num_list[-1]]+"十"+numdict[num_list[0]]elif max_digit > 1: #超过2位的数while max_digit > 0:if num_list[-1] != 0: #若当前位上数字不为0,则加上位称chinese += numdict[num_list[-1]]+digitdict[max_digit]max_digit -= 1num_list.pop(-1)else: #若当前位上数字为0,则不加上位称chinese += numdict[num_list[-1]]max_digit -= 1num_list.pop(-1)chinese += numdict[num_list[-1]]if chinese.endswith("零"): #个位数如果为0,不读出chinese = chinese[:-1]if chinese.count("零") > 1: #中文数字中最多只有1个零count_0 = chinese.count("零")chinese = chinese.replace("零","",count_0-1)return chinese

总结一下,以上简单介绍了一下我个人通过Python代码实现阿拉伯数字向中文数字转化的实现思路,虽然目前只能最多实现万位数的转化,但是中文数字就是4位数为一阶的,即万到亿,亿到兆,兆到京的转化,是以10的4次方为进制的。鉴于我的方法可以实现连续4位数的转化,所以可以将我的这个方法作为基础, 延伸到更高位数的转化

下面给出数字转化的完整代码:

numdict = {1:"一",2:"二",3:"三",4:"四",5:"五",6:"六",7:"七",8:"八",9:"九",0:"零"} #个位数的字典
digitdict = {1:"十",2:"百",3:"千",4:"万"} #位称的字典def maxdigit(number,count):num = number//10 #整除是//if num != 0:return maxdigit(num,count+1) #加上return才能进行递归else:digit_num = number%10 #digit_num是最高位上的数字return count,digit_num #count记录最高位def No2Cn(number):max_digit,digit_num = maxdigit(number,0)temp = numbernum_list = [] #储存各位数字(最高位的数字也可以通过num_list[-1]得到while temp > 0:position = temp%10temp //= 10 #整除是//num_list.append(position)chinese = ""if max_digit == 0: #个位数chinese = numdict[number]elif max_digit == 1: #十位数if digit_num == 1: #若十位上是1,则称为“十几”,而一般不称为“一十几”(与超过2位的数分开讨论的原因)chinese = "十"+numdict[num_list[0]]else:chinese = numdict[num_list[-1]]+"十"+numdict[num_list[0]]elif max_digit > 1: #超过2位的数while max_digit > 0:if num_list[-1] != 0: #若当前位上数字不为0,则加上位称chinese += numdict[num_list[-1]]+digitdict[max_digit]max_digit -= 1num_list.pop(-1)else: #若当前位上数字为0,则不加上位称chinese += numdict[num_list[-1]]max_digit -= 1num_list.pop(-1)chinese += numdict[num_list[-1]]if chinese.endswith("零"): #个位数如果为0,不读出chinese = chinese[:-1]if chinese.count("零") > 1: #中文数字中最多只有1个零count_0 = chinese.count("零")chinese = chinese.replace("零","",count_0-1)return chinese

好了以上就是所有的内容,希望大家多多关注,点赞,收藏,这对我有很大的帮助。谢谢大家了!

好了,这里是Kamen Black君。祝国康家安,大家下次再见喽!!!溜溜球~~

小技巧2:Python 实现阿拉伯数字转化为中文数字相关推荐

  1. Python将阿拉伯数字转化为中文大写

    利用Python将阿拉伯数字转化为中文大写,其实最麻烦的地方就是中间空多个0的问题,这种情况下,采用拆分法则,将一个大数字,先拆分成整数部分和小数部分,再对整数部分按照仟.万.亿.兆分位拆分为四个字符 ...

  2. python练习题--阿拉伯数字转换成中文数字

    python练习题–阿拉伯数字转换成中文数字 用户输入任意阿拉伯数字,如[123456],把它转换成中文数字[壹拾贰万叁仟肆佰伍拾陆] 以前面试时面试官问的问题,当时没能答出来,今天初步解决,把它记录 ...

  3. js 阿拉伯数字转化为中文数字

    作为一个中国人,总会在某个瞬间觉得中文是那样的美,中华文化是那样的博大精深.当书写数字时,都不忘了使用中文式的数字,比如写单据,章节名时,写上中文数字显得高大上一些.在这里,就和大家分享一下,如何通过 ...

  4. python拼音名_实用小技巧,Python一秒将全部中文姓名转为拼音!

    有时在处理文件时候,我们需要将中文姓名转换为拼音,或者是转换为拼音首字母,本文将介绍三种Python实现的方法,最后给一个批量操作的代码案例!一.xpinyin 开门见山,Python中文字转拼音可以 ...

  5. python 拼音姓名排序_实用小技巧,Python一秒将全部中文姓名转为拼音!

    有时在处理文件时候,我们需要将中文姓名转换为拼音,或者是转换为拼音首字母,本文将介绍三种Python实现的方法,最后给一个批量操作的代码案例! 一.xpinyin 开门见山,Python中文字转拼音可 ...

  6. 输入数字怎么变成大写python_Python将阿拉伯数字转化为中文大写

    利用Python将阿拉伯数字转化为中文大写,其实最麻烦的地方就是中间空多个0的问题,这种情况下,采用拆分法则,将一个大数字,先拆分成整数部分和小 数部分,再对整数部分按照仟.万.亿.兆分位拆分为四个字 ...

  7. 用 Python 快速转化「中文数字」和「阿拉伯数字」

    最初,我是在开发聊天机器人的时候用到这个功能,比如用户提问 一千米以内有哪些场地可用?,我需要在数据库中查询范围小于一千米的场地,SQL 语句大致为 WHEN distant<1000,但我只能 ...

  8. python输入10个数据_分享10个数据分析的小技巧(Python)

    一些小提示和小技巧可能是非常有用的,特别是在编程领域.有时候使用一点点黑客技术,既可以节省时间,还可能挽救"生命". 一个小小的快捷方式或附加组件有时真是天赐之物,并且可以成为真正 ...

  9. 日期格式化为yyyymmdd_Excel小技巧——如何将多行日期快速转换为数字文本

    Hello~大家好,本来计划这一期给大家介绍一下如何根据身份证号快速获得性别信息的小技巧,但是在上一节内容如何将数字快速转换成日期格式发布后,就有朋友私信问我,可不可以再介绍一下将日期快速转换成数字文 ...

  10. aspose excel中文文档_Excel实战技巧,如何将阿拉伯数字快速转换为中文大小写格式?...

    Hi,大家好,我是小雨!应诸多网友的需求,从今天起小雨每天为大家讲解一个办公软件(Word.Excel.PPT)实战技巧. 第 001 期:如何将阿拉伯数字快速转换为中文大小写格式 Excel最强大的 ...

最新文章

  1. SP348 EXPEDI - Expedition(有趣的贪心,优先队列)
  2. 「NLP」 NLP中应用最广泛的特征抽取模型-LSTM
  3. 提高项目开发效率之--会议室墙的进度表
  4. 说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
  5. Python爬虫开发:cookie的使用案例
  6. IT大佬廖雪峰带你玩转Python数据分析(内附资源)
  7. how does gateway framework treat default system flag in customizing
  8. Java @Deprecated注解
  9. JimuReport积木报表 — API数据源报表制作
  10. STL sort 函数实现详解 ZZ
  11. java .jar怎么打开_java打开jar文件的方法
  12. 笨办法学python3 视频打包_正版 笨办法学Python 3 进阶篇+笨办法 学Python 3 视频教学 笨方法学Python核...
  13. python report_python之Reportlab模块
  14. 台式机dp接口_聊聊电脑视频接口那些事
  15. Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向
  16. 计算机03年word做母亲节贺卡,word2007怎样制作电子母亲节贺卡
  17. 《C语言程序设计》单元总结与练习题
  18. teleop app android,使用yocs_cmd_vel_mux进行机器人速度控制切换
  19. 面试题整理 自问自答
  20. 汇编inc为什么不影响cf,为什么INC和DEC指令不影响进位标志(CF)?

热门文章

  1. 云原生赋能传统行业软件离线交付
  2. 虚拟机xftp工具连接服务器,xftp5(ftp上传工具)如何连接虚拟机?
  3. js 中的 let 关键字
  4. NosqlBooster For MongoDB解决License问题
  5. 【自用记录向】YOLOv5模型训练,按进度更新
  6. Learning AV Foundation(二)AVAudioPlayer
  7. php 豆瓣api_豆瓣申请API Key教程
  8. 【Python 邮件合并 pandas mailmerge】
  9. HDU 1317 一路wa到西天
  10. html div与span同行,div和span在一行 div和Span及a标签的区别