'''念数字.  给出一个字典. 在字典中标识出每个数字的发音.

包括相关符号. 然后由用户输入一个数字. 让程序读出相对应的发音

(不需要语音输出. 单纯的打印即可)'''dic={'-': 'fu','0': 'ling','1': 'yi','2': 'er','3': 'san','4': 'si','5': 'wu','6': 'liu','7': 'qi','8': 'ba','9': 'jiu','.': 'dian'}

c= ['', 'shi', 'bai', 'qian']#返回值的位数

defweiShu(num):

n= 1

# 取绝对值

num=abs(num)while num // 10 ** n !=0:

n+= 1

else:returnnwhile 1:

nums=[]

nums23=[] # 存放整数部分分割的字符串

lst=[]

numXiaoshu=[] # 存放小数部分的分割字符串

num= input('请输入一个数:').strip()if '.' in num and len(num.split('.'))==2: # 确保只有一个小数点

num, xiaoshu= num.split('.')

numXiaoshu.append(dic['.']) # 把小数点对应的dian加入for i inxiaoshu: # 取出小数部分的每一位

numXiaoshu.append(dic[i])#print(numXiaoshu)

if num.strip('-').isdigit(): # 先去掉负号统一处理

n=weiShu(int(num)) # 判断当前的数是多少位

s= ''ii= -1

# 遍历全部输出4位4位进行处理

for i inrange(n):if i % 4 ==0: # 4位4位处理,大于4位加‘wan’,大于8位加‘yi’if s != '':

nums.append(s)

s= ''s= num[ii] +s

ii-= 1 # 从后往前数

else:

nums.append(s) # 4位4位添加到列表#输出分割的东西

#print(nums)

j = 1

for num2 innums:

jjj=len(num2) # 主要控制shi,bai,qianfor i innum2:if i == '0':try:if lst[-1] !=dic[i]: # 如果上一个也为0则不将当前的0插入多个0读成一个0

lst.append(dic[i])except:

lst.append(dic[i])else:

# 如果非零则添加,并添加shi,bai,qian

lst.append(dic[i])

lst.append(c[jjj- 1])

jjj= jjj - 1

if lst[-1] == 'ling': # 去掉末尾的零

lst.pop()

final= ' '.join(lst).replace('yi shi', 'shi') # 把yishi的读法改成shi

nums23.append(final) # 添加到整数部分列表中

lst=[]else:print('输入有误,请重新输入!')continue

if n == 1 and int(num) ==0: # 处理输入全都是0的情况

nums23= ['ling']

l=len(nums23) # 判断有多少个4位4位的if '-' innum: # 处理负数的情况

nums23.append(dic['-'] + ' ')

# 处理wan,yi,zhao的添加if l == 1:pass

elif l == 2:

nums23[1] += 'wan'

elif l == 3:#print(nums23)

if nums23[1].strip() != '':

nums23[1] += 'wan'

if nums23[2].strip() != '':

nums23[2] += 'yi'

elif l == 4:if nums23[1].strip() != '':

nums23[1] += 'wan'

if nums23[2].strip() != '':

nums23[2] += 'yi'

if nums23[3].strip() != '':

nums23[3] += 'zhao'

else:print('你输入的数字有点大呀!请重新输入!')continuenums23=nums23[::-1] # 处理完之后读法是倒放的,取倒

nums23.append(' '.join(numXiaoshu)) # 添加小数部分的东西print(''.join(nums23).strip().replace(' ', ' ')) # 将全部都打印出来

念数字python_念数字解题相关推荐

  1. java求幸运数字_幸运数字问题 —— Java实现

    题目描述 小雅同学认为6,8是她的幸运数字,而其他数字均不是,一个幸运数是指在十进制表示下只含有幸运数字的数.给定你一个区间(a,b)a和b之间(其中包括a和b幸)运数的个数. 输入描述 输入两个整数 ...

  2. 数字下变频和数字上变频

    在超外差式接收机中,如果经过混频后得到的中频信号比原始信号低,那么此种混频方式叫做下变频 (Down Converter or DC).将射频信号通过一次或者几次的模拟下变频转换到中频上,在中频对信号 ...

  3. 无重复数字的随机数字数组

    这几天看MFC,头晕眼花,也觉得没有什么可以写的. 今天学习之余,看到一个面试题"1000个范围0-2000的数字,进行排序打印出来".就想着实现一下. 第一步先要建立1000个范 ...

  4. python数字类型-Python数字类型介绍

    数据类型介绍 Python数据类型可分为:数字型和非数字型 数字型 整型(int) 浮点型(float) 布尔型(bool) 真(True) 假(False) 复数型(complex) 主要用于科学计 ...

  5. python数字类型-Python3 - 数字类型

    在 Python 中,数字并不是一个真正的对象类型,而是一组类似类型的分类.Python 不仅支持通常的数字类型(整数和浮点数),而且还能够通过常量去直接创建数字以及处理数字的表达式.数字数据类型是不 ...

  6. php 大数运算类,PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法

    本文实例讲述了PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法.分享给大家供大家参考,具体如下: PHP计算大数值运算时会出错,当数字太大时,数值会变成科学计数.那怎么来进行PHP超大数值 ...

  7. python 如何将数字字符串转换为数字?

    将单个数字字符串转换为数字 def char2num(s):return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7 ...

  8. oracle 非数字型转数字型

    原文:oracle 非数字型转数字型 oracle中如果一个字段内容不全是数字型 可以通过以下方式过滤 to_number(substr(translate(a.vital_signs_cvalues ...

  9. C++将数字A转换为数字B所需的翻转次数算法实现(附完整源码)

    C++将数字A转换为数字B所需的翻转次数算法实现 C++将数字A转换为数字B所需的翻转次数算法实现完整源码(定义,实现,main函数测试) C++将数字A转换为数字B所需的翻转次数算法实现完整源码(定 ...

最新文章

  1. 深圳腾讯内部Jetpack宝典意外流出!极致经典,堪称Android架构组件的天花板
  2. python开发需要掌握哪些知识-Python的8个基础知识点,新手必须背下来!
  3. 模拟网络通信中存储转发的分组交换算法
  4. sql注入***原理
  5. gps有几个轨道面_嫦五“一脚刹车”,进了环月轨道
  6. 研究死锁–第5部分:使用显式锁定
  7. 实现服务器和客户端数据交互,Java Socket有妙招
  8. nas存储服务器 文件夹加密,NAS网络存储服务器储备数据的安全性怎么样?
  9. 有人问我:Linux下命令行里 password:的时候 用键盘密码打不了
  10. python实现希尔排序(已编程实现)
  11. fedora 主题美化
  12. Simulink里的S函数介绍(Matlab-1)
  13. JDY-24M级蓝牙简介
  14. 教你如何用两个栈实现一个队列
  15. 深入理解SD卡基础原理以及内部结构的总结
  16. 台湾嵌入式软硬件厂商组建联盟 欲分Gphone一杯羹
  17. 高通骁龙845与骁龙710处理器参数对比分析
  18. #把一个数把各个位数拆取出来
  19. 径向基函数模型matlab,径向基函数RBF.ppt
  20. 运维学python用不上_运维朋友们,别再问需不需要学 Python 了!

热门文章

  1. matlab解欠定方程组,matlab解欠定方程组
  2. python百度贴吧图片爬取
  3. 怎样批量、快速、一次性删除QQ好友
  4. PCA(主成分分析)、超弦/M理论、意识
  5. go 时间戳(秒、毫秒、纳秒)
  6. Android开发实用小工具十——进制转换工具
  7. WIN10 开机自动拨号
  8. OpenFace windows使用
  9. 好代码 ,坏代码:你的代码和其他工程师的代码
  10. 今明两天微服务 Apache ServiceComb 北京深圳连续”双开”