题目描述

Jessi初学英语,为了快速读出一串数字,编写程序将数字转换成英文:
如22:twenty two,123:one hundred and twenty three。
说明:
数字为正整数,长度不超过九位,不考虑小数,转化结果为英文小写;
输出格式为twenty two;
非法数据请返回“error”;
关键字提示:and,billion,million,thousand,hundred。
方法原型:public static String parse(long num)

输入描述:
输入一个long型整数
输出描述:
输出相应的英文写法

示例1
输入
2356
输出
two thousand three hundred and fifty six

题解:

思路:通过将位数和数字分离来操作,位和数字分别用字典保存去做匹配,然后用列表来分别存储匹配到的位和数字,最后输出的时候做拼接
如2356,位数有千和百,数字有2、3、56

# coding=utf-8#定义全局变量
wei = []
number = []
numdict = {'1': 'one', '2': 'two', '3': 'three', '4': 'four', '5': 'five', '6': 'six', '7': 'seven','8': 'eight', '9': 'nine', '10': 'ten', '11': 'eleven', '12': 'twelve', '13': 'thirteen','14': 'fourteen', '15': 'fifteen', '16': 'sixteen', '17': 'seventeen', '18': 'eighteen','19': 'nineteen', '20': 'twenty', '30': 'thirty', '40': 'forty', '50': 'fifty', '60': 'sixty','70': 'seventy', '80': 'eighty', '90': 'ninety'}
weidict = {'1000000000': 'billion', '1000000': 'million', '1000': 'thousand', '100': 'hundred'}
s = ""#对数字做匹配判断
def numPanDuan(num):if num > 20 and num < 100:number.insert(0, numdict[str(num % 10)])number.insert(0, numdict[str(num // 10 * 10)])if num <= 20 and num > 0:number.insert(0, numdict[str(num)])if __name__ == '__main__':num = int(input())if num>=0 and num<1000000000:#0单独处理if num == 0:s = 'zero'else:for k in weidict.keys():#对位进行匹配判断if num // int(k) > 0:wei.insert(0, weidict[k])if num // int(k) >= 100:if num % int(k) == 0:num = num // int(k)continueelse:numPanDuan(num % int(k))else:number.insert(0, numdict[str(num // int(k))])num = num % int(k)numPanDuan(num)print(number)print(wei)#输出时字符串拼接处理if len(wei)==0:for i in number:s+=' '+ielse:for i in range(len(wei)):s+=number[len(number)-1-i]+' '+wei[len(wei)-1-i]+' 's+=' and 'for i in range(len(number)-len(wei)):s+=number[i]+' 'else:s="error"print(s)

说明:
本题的代码其实还有bug,目前只能实现简单的数字,后续会做修改,仅提供一个参考的思路
目前本King的代码能力只能按上述方式实现,后续有更好的方案,欢迎各位指点,也会不定期做修改~

学英语(20200312)相关推荐

  1. 程序员注意了:这个微信群可以学英语,而且全程免费

    不少同学问我,有没有免费学英语的地方. 不瞒大家,我还真知道. 今天分享的是一个微信群,群里面会有免费的英语课程,还有专业的英语老师辅导学习. 不过,这个微信群说是严格把控微信群学习质量,所以一个群限 ...

  2. 文末福利 | 只送给真正想学英语的你!

    打开电脑,我内心充满了紧张和期待,我又一次要特立独行的搞出点儿轰动大事情! 我打算邀请你和我一起"共谋大事","重金"邀请你: 花别人三分之一的时间学好英语 用 ...

  3. 宏基因组 微生物人注意了!这个微信群可以学英语,而且全程免费

    最近不少网友发现,在微信群里居然可以学英语!而且全程免费! 群里面会有免费的英语直播课,免费的课程资料,还有专业的英语老师辅导学习. 更重要的是,不需要集赞,转发,分享,就可以加入! 但是,群主要求免 ...

  4. “单词不用背,看完自然会”,4天背过1万单词,原来学英语真的有捷径!

    前天,Coco突然找到我,说要请我吃饭. 我准备辞职了,上周我成功通过500强的英语面试,拿到了运营推广经理的Offer,工资是现在的6倍! 没有您教我学英语,我不可能在3个月内提升得这么快. 估计现 ...

  5. 造句简单_零基础也能说一口流利英语,用简单的you are造句学英语

    万能公式学英语 学习10分钟,相当于跟别人学习10个小时 学习主题 零基础也能说一口流利英语, 用简单的"you are+..." 造出简单又地道的英语句子吧! 句子拓展You a ...

  6. 学英语必备的18条法则,建议收藏!

    黄金法则第1条 What is language for? Some people seem to think it is for practicing grammar rules and learn ...

  7. 学英语不必太在意单词

    职场人士学英语,庄子说:不必太在意单词 ----byteh获"博客之星"之后的感谢信 "博客之星"是一张图片,一个标志,一种鼓励,一些认可,仅此而已!写博文不是 ...

  8. 全民学英语,VIPKID、51Talk、伴鱼、阿卡索们还好做么?

    来源/螳螂财经(ID:TanglangFin) 作者/陈曦 细数数做在线英语一对一的机构,我们便能发现这条赛道已经拥挤不堪了.VIPKID.51Talk.伴鱼.阿卡索.LIKEABC.HelloKid ...

  9. abort has been called翻译_2020年12月大学英语四级翻译练习题:股票投资_四级

    大学英语四级翻译目前考察的方向多偏向于社会经济.文化等方面,日常复习中我们也要提前储备一些常考话题材料.下面新东方在线英语四级频道为大家整理了英语四级翻译练习题库,希望对大家的备考有帮助. 2020年 ...

最新文章

  1. html 二叉树模式,重建二叉树.html
  2. 两年实现Nature和Science双发,这位电子科大博士火了
  3. 所有编程皆为Web编程
  4. python小猪蹄儿
  5. codevs 4768 跳石头
  6. Taro+react开发(31)微信小程序都是要通过编译的
  7. Java描述 数据结构与算法
  8. java interceptor用法_java自定义拦截器用法实例
  9. ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  10. 通过分享后的百度网盘链接获取外链图片地址
  11. overleaf表格_LaTeX插入表格
  12. JS中的 回调函数(callback)
  13. Orge在VS2008的配置方法
  14. RSA 非对称加密算法简述
  15. WF(Workflow foundation)与Asp.net结合(二)
  16. layui 实现动态 radio 、select下拉框 jQuery赋值方法
  17. 北大博士唐大仕推荐C#学习网站
  18. CTPN-自然文本场景检测学习笔记
  19. 机器人学的数理基础知识
  20. 关于医保你可能不了解的

热门文章

  1. 廖雪峰的GIT教程-读书笔记
  2. 那些容易被忽视但又非常重要的安全知识
  3. C# 编写Word文档
  4. java 毫秒转时分秒格式(Java中将毫秒数转为*天*小时*分*秒)
  5. 修图软件哪个好android,修图软件哪个好?手机修图软件大盘点
  6. RK3399平台开发系列讲解(硬件波形解析篇)10.1、USB2.0相关硬件波形(实图)解析
  7. 业财一体化管理,简化财务复核流程,提高工作效率
  8. The world与Mathon2的比较
  9. 【研究计划书】基于人工智能算法的肿瘤代谢问题研究
  10. 表头顺序不一样的表格如何合并_不同表头的多表合并