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. haha

    [问题描述] 栈是一种强大的数据结构,它的一种特殊功能是对数组进行排序.例如,借助一个栈,依次将数组1,3,2按顺序入栈或出栈,可对其从大到小排序:1入栈:3入栈:3出栈:2入栈:2出:1出栈.在上面 ...

  2. 改变了一下blog的主题,很开心

    调整了一下博客的样式,之前一直想改变下,一直不会这次终于摸索出来一点,不过是最简单的,就是在管理里面的设置,可以定制css代码,修改修改,页面就跟着你的想法走了,有时间好好修改下,暂时这个样子,简单大 ...

  3. 我的android学习经历20

    WebView的使用 WebView既可以和Intent一样实现界面跳转一样,让系统浏览器打开页面,也可以在应用程序中打开页面 注意用WebView时,需要注册网络服务 代码如下: package c ...

  4. DbUtils使用时抛出Cannot get a connection

    java.sql.SQLException: Cannot get a connection, pool error Timeout waiting for idle object Caused by ...

  5. 在Web应用和IntelliJ IDEA中使用Spring框架

    在JAVA SE和Web应用中都可以使用Spring, 这里只说在Web程序中的应用. 下面将以Spring 3.0.5版本为例. 在Web中使用Spring只需要如下两个步骤: 第一,将Spring ...

  6. 字符串处理:ABAP中的正则表达式

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. [SAP ABAP开发技术总结]FTP到文件服务器,服务器上文件读写

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  8. Base64加密解密原理以及代码实现(VC++)

    Base64加密解密原理以及代码实现 转自:http://blog.csdn.net/jacky_dai/article/details/4698461 1. Base64使用A--Z,a--z,0- ...

  9. scala中如何编写自定义的流程控制结构

    scala是一种函数式编程风格的语言,除了常见的if......else  ,for ,while等传统的流程控制结构,也可以自定义流程控制的控制结构. 再了解scala如何实现编写新的流程结构,我们 ...

  10. [转]-Gradle使用手册(三):构建任务

    原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Using-sourceCompatibility-1. ...