利用python写出的算法 关于输入非正数的整数打印出其英语
2018-01-18 12:05
429 查看
这里楼主只做出了小于15位数的英语打印:
#利用输入的非负数的数字打印出单词(小于15位的数字) #划分成三位数一份进行读取 s=input() dict1={1:"one",2:"two",3:"three",4:"four",5:"five",6:"six",7:"seven",8:"eight",9:"nine"}#没三位的第一位和第三位数的的用法 dict2={10:"ten",11:"eleven",12:"twelve",13:"thirteen",14:"fourteen",15:"fifteen",16:"sixteen",17:"seventeen",18:"eighteen",19:"nineteen"}#当后两位为十几的读法 dict3={1:"ten",2:"twenty" 4000 ,3:"thirty",4:"forty",5:"fifty",6:"sixty",7:"seventy",8:"eighty",9:"ninety"}#弟二位数大于1的读法 dict4={3:"hundred",4:"thousand",7:"million",10:"billion",13:"trillion"}#所有数的长度一定时读法 l=len(s)#用于作减 alllenth=l#统计总共的长度 用于取值 while l>0: if (alllenth==1 and s[0]==0) or int(s[0:])==0:#当输入的数字都是0和只有一位数时的0 这里考虑到0的特殊 print("zero") l-=l-1 if int(s[alllenth-l:])>0:#这是一个大于0的数字 if l%3==1 or (int(s[alllenth-l])!=0 and l%3==0 and l/3==1): #在第1位上的数字或者 只有1组三维的数字 比如301 但第三个数字不为0 print(dict1.get(int(s[alllenth-l]),""),end=" ") if int(s[alllenth-l])==0 and l%3==0 and l/3==1:#只有三位数 第一位为0 只有一组三维数的情况 l-=1 if l%3==0 and l/3!=1 and int(s[alllenth-l])!=0:#不止一组三位数 而且第一个位置上的数不为0 print(dict1.get(int(s[alllenth-l]),""),end=" hundred ") if l%3==2:#第二个位置上的数字的情况 if int(s[alllenth-l])>1 and int(s[alllenth-l+1])>0:#第二个位置上的数字大于1 而且第三个位置上的数字大于0的情况 print(dict3.get(int(s[alllenth - l]),""),end=" ") if int(s[alllenth-l+1])==0:#第三个位置上的数为0的情况 print(dict3.get(int(s[alllenth - l]),""),end=" ") l-=1 if int(s[alllenth-l])==1:#第二个位置上的数为1的 情况 print(dict2.get(int(s[alllenth - l:alllenth - l + 2]),""),end=" ") l-=1 if l%3==1 and l<=alllenth-2 and int(s[alllenth - l - 2:alllenth - l + 1])==0:#排除这一组的三个数都为0的情况 print("",end="") else: print(dict4.get(l,""),end=" ") l-=1
相关文章推荐
- (四)、利用命令行参数输入一个整数,打印空心菱形
- 每天学习一算法系列(6) (输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径)
- 每天学习一算法系列(6) (输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径)
- python关于利用Windows命令行输入参数的注意事项
- python 输入三个整数,按照从小到大的顺序打印
- java算法程序题,输入三个数求哪个是最大数,先判断这三个数是否整数,不是就打印提示:请输入数字,若是就打印出那个最大数
- 【算法-java】打印出二叉树中结点值的和为输入整数的所有路径
- python - 输入目录,输出打印全部文件及文件夹
- JAVA算法题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
- python爬虫学习(1)--关于正则表达式输入和提取中文
- 利用python进行数据分析-关于包的坑
- 关于最大公约数的三种解法之二(连续整数检测算法)
- 利用python中的hex()函数把整数转换成一个十六进制的字符串
- 利用cocos2dx 3.2开发消灭星星(七)关于星星的算法
- IT人员及程序员怎样学好英语(关于如何利用极其有限的时间和条件学好英文)
- 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。 如果输入的整数本身就是素数,则输出该素数本身,
- mips汇编之输入两个整数并打印它们的和
- 微软算法100道题-------输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。
- 从命令行输入5个整数,放入一整型数组,然后打印输出。要求: 如果输入数据不为整数,要捕获输入不匹配异常,显示“请输入整数”;如果输入数据多余5个,捕获数组越界异常,显示“请输入5个整数”。 无论是否发
- KNN算法--手写输入判断(Python3)