8–7. 全数. 完全数被定义为这样的数字: 它的约数(不包括它自己)之和为它本身. 例如: 6
的约数是 1, 2, 3, 因为 1 + 2 + 3 = 6 , 所以 6 被认为是一个完全数. 编写一个名为 isperfect()

的函数, 它接受一个整数作为参数, 如果这个数字是完全数, 返回 1 ; 否则返回 0 .

解答:

#!/usr/bin/python
# -*- coding:utf-8 -*-
#Filename:8_7.py
'''
Created on 2012-8-13@author: wanglei
'''
import test8_5,sys
def isperfect(num):if not type(1)==type(num): #测试用户输入的值是否为整数print "你输入的不是整数!"sys.exit()alist=test8_5.getfactors(num)if sum(alist)-num==num-1:return 1else:return 0
num=input("请输入要检测的整数: ")
print isperfect(num)

测试数据:

请输入要检测的整数: 6
1
请输入要检测的整数: 100
0

8–8. 阶乘. 一个数的阶乘被定义为从 1 到该数字所有数字的乘积. N 的阶乘简写为 N! .
写一个函数, 指定N, 返回 N! 的值.

解答:

#!/usr/bin/python
# -*- coding:utf-8 -*-
#Filename:8_8.py
'''
Created on 2012-8-13@author: wanglei
'''
import sys
def factorial(n):result=1while n>=1:result *=nn -=1return result
num=input("请输入一个整数: ")
print "%d的阶乘值是: %d"%(num,factorial(num))

测试数据:

请输入一个整数: 5
5的阶乘值是: 120请输入一个整数: 20
20的阶乘值是: 2432902008176640000

8–9. Fibonacci 数列. Fibonacci 数列形如 1, 1, 2, 3, 5, 8, 13, 21, 等等. 也就是说,
下一个值是序列中前两个值之和. 写一个函数, 给定 N , 返回第 N 个 Fibonacci 数字. 例如, 第
1 个 Fibonacci 数字是 1 , 第 6 个是 8 .

解答:

#!/usr/bin/python
# -*- coding:utf-8 -*-
#Filename:8_9.py
'''
Created on 2012-8-13@author: wanglei
'''
import sys
def fibonacci(n):if n==1:return 1elif n==2:return 1else:return fibonacci(n-1)+fibonacci(n-2)
num=input("请输入一个整数: ")
print fibonacci(num) 

测试数据:

请输入一个整数: 6
8
请输入一个整数: 9
34
请输入一个整数: 15
610

采用了递归的思路来计算斐波那契数列

8–10. 文本处理. 统计一句话中的元音, 辅音以及单词(以空格分割)的个数. 忽略元音和
辅音的特殊情况, 如 "h", "y", "qu" 等. 附加题: 编写处理这些特殊情况的代码.

解答:

#!/usr/bin/python
# -*- coding:utf-8 -*-
#Filename:8_10.py
'''
Created on 2012-8-13@author: wanglei
'''
def wordcount(line):vowelstr='aeiou'vowel=0word=0consonant=0for s in line:if s.isalpha():if s in vowelstr:vowel +=1else:consonant +=1elif s==' ':word +=1else:passprint "元音有: %d个,辅音有: %d个,单词数为: %d"%(vowel,consonant,word+1)
str=raw_input("请输入一句话: ")
wordcount(str)            

测试数据:

请输入一句话: The quick brown fox jumps over a lazy dog.
元音有: 11个,辅音有: 22个,单词数为: 9

8–11. 文本处理. 要求输入一个姓名列表,输入格式是“Last Name, First Name,” 即 姓,
逗号, 名. 编写程序处理输入, 如果用户输入错误, 比如“First Name Last Name,” , 请纠正这
些错误, 并通知用户. 同时你还需要记录输入错误次数. 当用户输入结束后, 给列表排序, 然后以
"姓 , 名" 的顺序显示.

解答:

#!/usr/bin/python
# -*- coding:utf-8 -*-
#Filename:8_11.py
'''
Created on 2012-8-13@author: wanglei
'''
def nameprocess():name=''wrongtime=0namelist=[]while 1:name=raw_input("请输入你的姓名,以姓,名的格式,如:张,三,按q结束输入: ")if name=='q':breakif not ',' in name[:len(name)-1]: #判断姓名中是否有逗号,而且逗号不能再最后一位,这个判断条件写得鼻                                          #比较简单wrongtime +=1print "输入格式有误!你已经错误%d次!请重新输入!"%wrongtimecontinueelse:namelist.append(name)print "排序后的姓名列表为: "for eachname in sorted(namelist):print eachname
nameprocess()

测试数据:

请输入你的姓名,以姓,名的格式,如:张,三,按q结束输入: li,ming
请输入你的姓名,以姓,名的格式,如:张,三,按q结束输入: zhang,san
请输入你的姓名,以姓,名的格式,如:张,三,按q结束输入: lilei,
输入格式有误!你已经错误1次!请重新输入!
请输入你的姓名,以姓,名的格式,如:张,三,按q结束输入: hanmeimei
输入格式有误!你已经错误2次!请重新输入!
请输入你的姓名,以姓,名的格式,如:张,三,按q结束输入: jack,cheng
请输入你的姓名,以姓,名的格式,如:张,三,按q结束输入: q
排序后的姓名列表为:
jack,cheng
li,ming
zhang,san

这道题最后要求的输出比较简单了,所以仅仅把输入的列表排序后输入就好了,如果有其他的要求,可以将输入的列表

按要求进行各种分割操作,再输出

转载于:https://www.cnblogs.com/hello--the-world/archive/2012/08/13/2636742.html

《Python核心编程》第二版第八章练习题答案 第二部分相关推荐

  1. 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录

    目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高 ...

  2. python核心编程第二版pdf_Python Book电子书pdf版合集 Python核心高级编程第二版

    1小时学会Python.doc 51CTO下载-[Python系列].BeginningPythonFromNovicetoProfessionalSecondEdition.pdf 8.Python ...

  3. 《Python核心编程》第二版第36页第二章练习 -Python核心编程答案-自己做的-

    <Python核心编程>第二版第36页第二章练习 这里列出的答案不是来自官方资源,是我自己做的练习,可能有误. 2.21 练习 2-1. 变量,print和字符串格式化操作符.启动交互式解 ...

  4. 《Python核心编程(第二版)》——1.9 练习

    本节书摘来自异步社区<Python核心编程(第二版)>一书中的第1章,第1.9节,作者[美]Wesley J. Chun,宋吉广 译,更多章节内容可以访问云栖社区"异步社区&qu ...

  5. 《Python核心编程》第二版第18页第一章练习 -Python核心编程答案-自己做的-

    <Python核心编程>第二版第18页第一章练习 这里列出的答案不是来自官方资源,是我自己做的练习,可能有误. 1.9 练习 1-1. 安装Python.请检查Python是否已经安装到你 ...

  6. 《Python核心编程》第二版学习总纲

    <CorePythonProgramming> <Python核心编程> 作者:Wesley J.Chun 开始学习,全书答案目录于此博文汇集总纲记录. -- NORMAL - ...

  7. python核心编程第三版_Python之父:自学python,这3本书能节约你一大半时间编程...

    今天给大家推荐三本书,有两本是属于一个系列,即<Python核心编程>第二版和第三版,一本讲基础和一本讲进阶,非常适合Python的初学者和有一定基础的学习者.还有一本书适合所有想学Pyt ...

  8. python核心编程第三版_《Python核心编程(第3版)》

    <Python核心编程(第3版)>是经典畅销图书<Python核心编程(第二版)>的全新升级版本,本书适合具有一定经验的Python开发人员阅读,总共分为3部分.第1部分为讲解 ...

  9. python核心编程 第3版_Python核心编程(第3版)PDF高清晰完整中文版

    一.书籍简介 <Python核心编程(第3版)>是经典畅销图书<Python核心编程(第二版)>的全新升级版本. <Python核心编程(第3版)>总共分为3部分. ...

最新文章

  1. Facebook再曝数据丑闻删除应用数据仍会被泄漏
  2. 【备忘】指定为同名callback的jsonp IE下script loaded状态标记
  3. Podman的概述与运用
  4. 【零基础学Java】—LinkedList集合(四十)
  5. 【学习笔记】计算机导论之操作系统和文件管理
  6. 视频出炉 | LeCun、Marcus激辩AI是否需要类似人类的认知能力
  7. #219. 【NOI2016】优秀的拆分
  8. 中blur函数_实时渲染中的软阴影技术
  9. java数独最快解,Java解数独--世界最难数独
  10. 完美数及寻找完美数的算法(Perfect number‘s algorithm)
  11. 高中计算机教室标语,高中教室标语精华
  12. C语言应用(3)——Base64编码/解码
  13. oracle根据关键字搜索存储过程
  14. CarSim2017安装教程
  15. 推荐用户体验设计师必读的5本用户体验书籍
  16. 微信 html自动复制功能,怎样在网页中一键复制拷贝微信号跳转到微信
  17. 虚幻4混合空间动画蓝图
  18. lol服务器维护是拳头,拳头:今年将修复《英雄联盟》客户端 启动时间降到19秒...
  19. VUE课堂笔记1-课前准备
  20. 梯度、雅克比矩阵、海森矩阵、多元泰勒公式

热门文章

  1. 文远知行A轮再获数千万美元融资 商汤科技和农银国际跟投
  2. IDC报告:谁是桌面虚拟化的王者
  3. 设计师必备网址 百度MUX
  4. GridView 使用方法总结
  5. 在AD没有备份的情况下还原被删除的数据
  6. 12款经典图片轮播jquery插件
  7. django-pagination---七步教你实现Django网站列表自动分页
  8. Java使用简单工厂模式对面向接口编程模式的深度解耦实现
  9. 你的CSDN粉丝为何那么少
  10. STM32串口+DMA使用1