目录

问题及思路

问题

思路

代码

导图

代码

问题及思路

问题

这是代码中主要问题,大家可以尝试自己解决,并用代码实现

思路

将数字以每四个字符划分一个数级,防止万和亿这两个数级单位重复输出。下面\数字\为一个数级

小写中文数字 = 小写中文数字 + 计数单位 + 数级

1.小写中文数字

  • 不是0输出小写中文
  • 数级上后面为0,不输出零:例如\150\2000\➤一百五十(零)万两千(零零零)
  • 数级开头或中间为0,结尾不为0,只输出一个零:例如\15\0002\➤十五万零(零零)二

2.计数单位

  • 计数单位上的数字为0则不输出:例如\15\0200\➤十五万零(千)二百

3.数级

  • 数级上都为0不输出:例如\15\0000\2000\➤十二亿零(万)两千,万级4位都为0,不输出万

4.特殊

  • 开头是一十开头,一省去:例如\15\2000\➤(一)十五万两千
  • 中间后面的一十不省去:例如\15\0010\➤十五万零一十一

代码

导图

代码

# 定义
# number是要转化的数字,为字符串
number = input("请输入数字")
# Chinese是要输出的数字,为字符串
Chinese = ""
# Num是中文小写数字,0为空,自定义控制0的输出
Num = ("", "一", "二", "三", "四", "五", "六", "七", "八", "九")
# NumUnit是计数单位,个位不读,为空
NumUnit = ("", "十", "百", "千")
# Unit是数级,个不读
Unit = ("", "万", "亿")
# bit是位数,表示该数字是第几位数
bit = len(number)
# key判断当前数级是否有数据(四位是否都为0)
key = False                                                        # 数据
# 从头开始遍历字符串number每一个数字
# numChart为数字字符串中单独一个数字字符
for numChart in number: # 如果当前数字不是0                                           if numChart != '0':# 中文小写数字 + 计数单位# Num[int(numChart)] 将数字转为int类型作为索引转换成中文小写数字# NumUnit[(bit - 1) % 4] 将位数作为索引取计数单位# 因为元组索引是从0开始,而最小的计数单位为1位小数,所以bit - 1                                          Chinese += Num[int(numChart)] + NumUnit[(bit - 1) % 4]# 数字不是0,表示该数级有数据         if not key:                                                key = True  # 如果数字是0                                           else:# 多个0遍历到最后一个0,对最后一个0进行判断选择零的输出# bit % 4 != 1 确保该0不是数级中最后一位,最后一位0不读,同时防止字符串numberi索引越界# number[len(number) - bit + 1] != '0' 下一位数字不为0,确保了多个0遍历到最后一个0                                                          if (bit % 4 != 1) and (number[len(number) - bit + 1] != '0'):Chinese += "零"# 数级# 数字是数级中最后一位,且数级有数据(四位不全为0),输出数级if (bit % 4 == 1) and key:# Unit[bit // 4] 用当前数字在第几个数级为索引取数级# 因为数字每四位为一个数级,位数除4取整即为第几个数级,所以bit // 4Chinese += Unit[bit // 4]# key为false,对下一个数级是否有无数据进行判断key = False# 位数从高位到低位bit -= 1# 输出
# 如果没有数据,长度为0,即为零
if len(Chinese) == 0:Chinese = "零"
# 如果字符串以一十开头,截取一
if (len(number) % 4 == 2) and (Chinese[0] == "一"):Chinese = Chinese[1:len(Chinese):1]
# 输出
print(Chinese)

数字改中文小写(含思路,python)相关推荐

  1. 10万以内数字转换为中文小写

    private string convertnumber(int number)         {             string[] Ls_ShZ = { "〇", &q ...

  2. 【算法java版01】:键盘录入一个字符串,将字符串中的大写改成小写,小写改成大写,数字改成*

    键盘录入一个字符串,将字符串中的大写改成小写,小写改成大写,数字改成 * 一.题目描述 二.解题思路 三.代码示例 四.测评结果 一.题目描述 键盘录入一个字符串,将字符串中的大写改成小写,小写改成大 ...

  3. excel小写转大写公式_EXCEL中文小写数字怎么转化成阿拉伯数字呢?

    把阿拉伯数字转化成中文小写数字,我们都知道,通过单元格格式设置就可以实现,如下图: 但是上面的转化有时并不能满足我们的需求,比如,我们需要把13转化成十三,而不是一十三,这时我们该怎么办呢? 下面我们 ...

  4. Python正则表达式案例一则:单词非两端字符改为小写

    问题描述:给定一段英文,要求把其中所有单词除两端字符之外的其他字母都改为小写. 技术要点: 1)re模块的sub()函数用法: 2)match对象的group()方法. 参考代码: 运行结果: abc ...

  5. python 转换数字为中文的大写

    python 转换数字为中文的大写 python 转换为中文的大写数字,比较简单,有需要的同学可以拿去使用,没做角和分 可以自己修改 下面为代码 #-*-coding:utf-8 -*- import ...

  6. python 将字符串改成小写

    python 将字符改成小写 # lowee() 将字符串改为小写 # l = ['Hello', 'World', 'IBM', 'Apple'] # p = [s.lower() for s in ...

  7. 数字转中文(大写,小写)数字,金额

    原网站 https://cnwhy.github.io/nzh Nzh Nzh 适用于需要转换阿拉伯数字与中文数字的场景. 特点如下: 以字符串的方式转换,没有超大数及浮点数等问题(请自行对原数据进行 ...

  8. 如何把excel里面中文小写数字转换成阿拉伯数字

    今天跟大家分享一下如何把excel里面中文小写数字转换成阿拉伯数字 1.打开要处理的Excel文件 2.将E列数据复制一份到F列中并选中 3.点击下图选项(Excel工具箱,百度即可了解详细下载安装信 ...

  9. python中如何将数字转换成中文数字_Python把数字变成中文的方法

    Python把数字变成中文的方法 发布时间:2020-07-07 15:05:45 来源:亿速云 阅读:92 作者:清晨 这篇文章将为大家详细讲解有关Python把数字变成中文的方法,小编觉得挺实用的 ...

最新文章

  1. Redis详解(八)------ 主从复制
  2. 【亚马逊AWS】入门级别实践
  3. Java接口有时有结果 有时没有_《Java程序员面试笔试宝典》之为什么Java中有些接口没有任何方法...
  4. UVa 12100 - Printer Queue
  5. 我的Wiki:使用JConsole对WildFly(或JBoss AS7)进行远程JMX访问
  6. LeetCode算法入门- Roman to Integer Integer to Roman -day8
  7. 最优化学习笔记(十七)——拟牛顿法(3)
  8. 边缘计算 | 阿里边缘云原生平台研发工程师招聘
  9. fedora 22 安装 flash player
  10. 光声光谱技术和激光、红外技术的优劣势对比
  11. java防xss攻击_java 防止xss攻击
  12. Python 帮助文件
  13. java scjp 试题_JAVA认证历年真题:SCJP考试真题和解析[1]
  14. 使用stm32f103rct6控制adf4351实现30M~~4G的正弦波
  15. 转盘抽奖小程序java_大转盘抽奖小程序版 转盘抽奖网页版
  16. html表格填充空白单元格,快速填充数据表格中的空白单元格
  17. Azido-PEG8-TFP ester,1818294-49-3
  18. 一个人靠不靠谱,在于能力是否配得上承诺
  19. WPF图片背景色过滤
  20. 技术水平真的很重要!技术详细介绍

热门文章

  1. POI读写超大数据量Excel,解决超过几万行而导致内存溢出的问题(附源码)
  2. 对于微机用户来说 为了防止计算机,计算机二级MSOffice考试巩固习题
  3. wegame每次登陆都要滑动验证_WeGame版《怪物猎人世界》的猎人们,你的权限验证正常吗?...
  4. JavaEE系统结构
  5. matlab中voa,matlab出现错误 function [w1,w2,VoA,VoB,VoC,VoD,VoE,VA1,VB1,VC1,V
  6. Android App无法抓包的解决方案总结
  7. 准备买下ZooX的亚马逊,能否念好自动驾驶的生意经?
  8. 微信小程序项目优化(初学者)
  9. Q2日活1.86亿创新高 推特还能打好一场翻身战吗?
  10. S5PV210开发 -- I2C 你知道多少?(一)