6-8.
列表。给出一个整型值,返回代表该值得英文,比如输入89会返回“eight-nine”。附加题:能够返回符合英文语法规律的新式,比如输入89会返回“eighty-nine”。本练习中的值假定在0~1000。
【答案】
代码如下:

number = int(raw_input('Please input a number between 1 to 1000: ... '))

units = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
tens_units = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen']
tens = ['twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'] print 'The number you input is: ' if 0 <= number <= 9: print units[number]
elif 10 <= number <= 19: print tens_units[number - 10]
elif 20 <= number <= 99:
if number % 10 == 0: print tens[number / 10 - 2]
else: print '%s-%s' % (tens[number / 10 - 2], units[number % 10])
elif 100 <= number <= 999:
if number % 100 == 0: print '%s hundred' % (units[number / 100])
elif number % 10 == 0 and (number - 100 * (number / 100)) != 10: print '%s hundred and %s' % (units[number / 100], tens[(number - 100 * (number / 100))/10 - 2])
elif number % 10 == 0 and (number - 100 * (number / 100)) == 10: print '%s hundred and ten' % (units[number / 100])
elif number % 10 != 0 and 20 < (number - 100 * (number / 100))<= 99: print '%s hundred and %s-%s' % (units[number / 100], tens[(number - 100 * (number / 100)) / 10 - 2], units[number - 10 * (number / 10)])
elif number % 10 != 0 and 10 < (number - 100 * (number / 100))< 20: print '%s hundred and %s' % (units[number / 100], tens_units[number - 100 * (number / 100) - 10])
elif number % 10 != 0 and 0 < (number - 10 * (number / 10)) < 10: print '%s hundred and %s' % (units[number / 100], units[number - 10 * (number / 10)])
else: print 'ten hundred'

  

【执行结果】

Please input a number between 1 to 1000: ... 309
The number you input is:
three hundred and nine Please input a number between 1 to 1000: ... 721
The number you input is:
seven hundred and twenty-one

  

看了一些网上的答案 发现没有自己做的那么简单易懂,算了自己做吧。下面是自己做的:

#!/usr/bin/env python

number = int(raw_input('Please input a number between 0 to 1000:'))
digit = ['zero','one','two','three','four','five','six','seven','eight','nine']
tendigit = ['ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen']
units = ['twenty','thirty','fourty','fifty','sixty','seventy','eighty','ninety'] if 0 <= number <= 9:
print 'translate into english is:',digit[number]
if 10 <= number <= 19:
print 'translate into english is:',tendigit[number-10]
if 20 <= number <= 99:
print 'translate into english is:',units[int(number/10)-2],'-',digit[number%10]
if 100 <= number <= 999:
ten = number%100
if 0 <= ten <= 9:
print 'translate into english is:',digit[int(number/100)],'hundred and',digit[ten]
elif 10 <= ten <= 19:
print 'translate into english is:',digit[int(number/100)],'hundred and',tendigit[ten-10]
else:
print 'translate into english is:',digit[int(number/100)],'hundred and',units[int(ten/10)-2],'-',digit[ten%10]

  

测试:

Please input a number between 0 to 1000:907
translate into english is: nine hundred and seven

  

Please input a number between 0 to 1000:917
translate into english is: nine hundred and seventeen

  

python核心编程第六章练习6-8的更多相关文章

  1. python核心编程第六章练习6-14

    随机数.设计一个“石头.剪子.布”游戏,有时又叫“Rochambeau”,你小时候可能玩过,下面是规则.你和你的对手,在同一时间做出特定的手势,必须是下面一种:石头.剪子.布.胜利者从下面的规则产生, ...

  2. python核心编程第六章练习6-13

    6-13.字符串.string模块包含三个函数,atoi(),atol()和atof(),他们分别负责把字符串转换成整型.长整型和浮点型数字.从Python 1.5起,Python的内建函数int() ...

  3. python核心编程第六章练习6-10

    6-10.字符串.写一个函数,返回一个跟输入字符串相似的字符串,要求字符串的大小写反转,比如,输入“Mr.Ed”,应该返回“mR.eD”作为输出.[答案]代码如下: #!/usr/bin/env py ...

  4. python核心编程第六章练习6-9

    6-9.转换.为练习5-13写一个姊妹函数,接受分钟数,返回小时数和分钟数.总时间不变,并且要求小时尽可能大.[答案]代码如下: #!/usr/bin/env python # translate m ...

  5. 【3】python核心编程 第六章-序列:字符串、列表和元组

    1.序列类型操作符 序列操作符 作用 seq[ind] 获得下标为ind 的元素 seq[ind1:ind2] 获得下标从ind1 到ind2 间的元素集合 seq * expr 序列重复expr 次 ...

  6. python核心编程第六章练习6-15

    转换.(a)给出两个可识别格式的日期,比如MM/DD/YY或者DD/MM/YY格式.计算出两个日期之间的天数.(b)给出一个人的生日,计算此人从出生到现在的天数,包括所有的闰月.(c)还是上面的例子, ...

  7. python核心编程第六章练习6-12

    6-12.字符串.(a)创建一个名字为findchr()的函数,函数声明如下.def findchr(string, char)findchr()要在字符串string中查找字符char,找到就返回该 ...

  8. python核心编程第六章练习6-11

    6-11.转换.(a)创建一个从整型到IP地址的转换,如下格式:www.xxx.yyy.zzz.(b)更新你的程序,使之可以逆转换.[答案](a)代码如下: Input_number = abs(in ...

  9. python 核心编程第六章课后题自己做的答案

    6–6. 字符串.创建一个 string.strip()的替代函数:接受一个字符串,去掉它前面和后面的 空格(如果使用 string.*strip()函数那本练习就没有意义了) 'Take a str ...

随机推荐

  1. java写的web服务器

    经常用Tomcat,不知道的以为Tomcat很牛,其实Tomcat就是用java写的,Tomcat对jsp的支持做的很好,那么今天我们用java来写一个web服务器 //首先得到一个server, S ...

  2. sudo详解

    一. sudo的特点 sudo扮演的角色注定了它要在安全方面格外谨慎,否则就会导致非法用户攫取root权限.同时,它还要兼顾易用性,让系统管理员能够更有效,更方便地使用它.sudo设计者的宗旨是:给用 ...

  3. django学习日志之自定义用户扩展

    django 为我们提供了强大的用户认证系统,并且提供了基于该系统的User模型,所以,很多时候,我们有必要对自己的user进行业务扩展,得到满足我们自己业务需求的user.借此,写下自己的感悟. u ...

  4. 设置MySQL开机自动启动的方法

    在windows中一般情况下mysql安装好之后就是开机自动启动不需要设置,但是如果是通过yum安装MySQL后,默认开机时不会自动启动,需要手动设置MySQL让它开机自启动. 首先,通过chkcon ...

  5. 4.给定一个正整数m,统计m的位数,分别打印每一位数字,再按照逆序打印出各位数字。 要求:m定义为类的属性,需定义构造函数为m赋值;当m大于99999时,输出错误信息“the number is too large”,不再执行。

    package a; public class ShuZi { int m; public int getM() { return m; } public void setM(int m) { thi ...

  6. MySQL(五) —— 子查询

    子查询(SubQuery)是指出现在其他SQL语句内的SELECT语句. 如: SELECT * FROM t1 WHERE col1 = (SELECT col2 FROM t2); 其中 SELE ...

  7. Creating Excel File in Oracle Forms

    Below is the example to create an excel file in Oracle Forms.Pass the Sql query string to the below ...

  8. Java——FIle:

    1.读取文件夹中的文件 /** * 读取图片文件 * @param imgPath 文件所在的文件夹绝对路径 * @return * @throws FileNotFoundException */ ...

  9. 10款Windows命令行工具

    Windows下CMD不好用,远没有Linux,或者一些SSH工具用起来方便.其实Windows下,也有一些不错的工具替代CMD: 0.powercmd经过比较,我最终选择了这款,这里补充一下截图:

  10. fuel3.2安装

    http://software.mirantis.com/quick-start/ 准备环境用的ubuntu12.04,只需要一个网卡通外网 下载好相关的iso,img,iso放到相应的iso目录 编 ...