77范文网 - 专业文章范例文档资料分享平台

python核心编程第二版第9章习题答案

来源:网络收集 时间:2020-06-19 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

9–1. 文件过滤. 显示一个文件的所有行, 忽略以井号( # )开头的行. 这个字符被用做Python , Perl, Tcl, 等大多脚本文件的注释符号.附加题: 处理不是第一个字符开头的注释. 答案:

f = open('test1.txt','r') for eachline in f: if eachline[0] == '#': continue elif '#' in eachline: loc = eachline.find('#') print eachline[:loc] else: print eachline,

9–2. 文件访问. 提示输入数字 N 和文件 F, 然后显示文件 F 的前 N 行. 答案:

N = int(raw_input('Enter a number: ')) f = raw_input('Enter filename :') f1 = open(f,'r')

allline = f1.readlines() f1.close()

for i in range(N): print allline[i],

9–3. 文件信息. 提示输入一个文件名, 然后显示这个文本文件的总行数. 答案:

f = raw_input('Enter filename :') f1 = open(f,'r') sum = 0 for i in f1: sum += 1

print sumf = raw_input('Enter filename :') f1 = open(f,'r') sum = 0 for i in f1: sum += 1 print sum 方法二:

f = raw_input('Enter filename :') f1 = open(f,'r')

allline = f1.readlines() f1.close()

print len(allline)

9–4. 文件访问. 写一个逐页显示文本文件的程序. 提示输入一个文件名, 每次显示文本文件的 25 行, 暂停并向用户提示\按任意键继续.\按键后继续执行.

答案:

f = raw_input('Enter filename :') f1 = open(f,'r')

allline = f1.readlines() f1.close() sum = 0

for i in allline: print i, sum += 1 if sum == 25: a = raw_input(\ sum = 0 方法二 import os

F=raw_input('pls input a file name:') n=0

f=open(F,'r') for i in f: print i, n+=1 if n==25: n=0

os.system('pause') f.close()

9-5 考试成绩,改进你的考试成绩问题(练习5-3和6-4),要求能从多个文件中读入考试成绩。文件的数据格式由你自己决定。 答案:

f = open('test1.txt','r') scores = [] for i in f: if 0 <= int(i.strip())<= 100: scores.append(int(i.strip())) else: print 'score wrong ,please again' if int(i.strip()) < 60: print 'score is E',i elif int(i.strip()) < 70: print 'score is D',i elif int(i.strip()) < 80: print 'score is C',i elif int(i.strip()) < 90: print 'score is B',i else:

print 'score is A',i f.close()

print 'average score is %.2f' % (sum(scores)/len(scores))

9–6. 文件比较. 写一个比较两个文本文件的程序. 如果不同, 给出第一个不同处的行号和列号. 答案:

f1 = raw_input('Enter a filename: ') f2 = raw_input('Enter a filename: ') F1 = open(f1,'r') F2 = open(f2,'r')

F1allline = F1.readlines() F2allline = F2.readlines() F1.close() F2.close()

len1 = len(F1allline) len2 = len(F2allline)

minlen1 = min(len1,len2) for i in range(minlen1): print F1allline[i], F2allline[i] if F1allline[i] != F2allline[i]: minlen2 = min(len(F1allline[i]),len(F2allline[i])) for j in range(minlen2): if F1allline[i][j] != F2allline[i][j]: print 'row is %d, column is %d' % (i+1,j+1) break else: continue else: print 'they are equal\\n'

9–7. 解析文件. Win32 用户: 创建一个用来解析 Windows .ini 文件的程序. POSIX 用户:创建一个解析 /etc/serves 文件的程序. 其它平台用户: 写一个解析特定结构的系统配置文件的程序.

答案:这题没看懂,抄的别人 option = {}

f = open(r'c:\\windows\\win.ini') for line in f: if line.startswith(';'): continue if line.startswith('['): iterm = [] name = line[1:line.rfind(']')] option.setdefault(name,iterm) continue

if '=' in line: option[name].append(line.strip()) print option

9–8. 模块研究. 提取模块的属性资料. 提示用户输入一个模块名(或者从命令行接受输入).然后使用 dir() 和其它内建函数提取模块的属性, 显示它们的名字, 类型, 值. 答案:

m = raw_input('Enter a module name: ') module = __import__(m) m1 = dir(module) print m1 for i in m1: print 'name:',i print 'tyoe:',type(getattr(module,i)) print 'value:',getattr(module,i) print

9–9. Python文档字符串。进入Python标准库所在的目录。检查每个 .py 文件看是否有__doc__ 字符串, 如果有, 对其格式进行适当的整理归类. 你的程序执行完毕后, 应该会生成一个漂亮的清单. 里边列出哪些模块有文档字符串, 以及文档字符串的内容. 清单最后附上那些没有文档字符串模块的名字.附加题: 提取标准库中各模块内全部类(class)和函数的文档.

答案:这是入口 #coding:utf-8 import os import sys num = []

'''将所有路径文件名全部提取出来''' def fun(dirName): for i in os.listdir(dirName): if os.path.isdir(dirName + \ fun(dirName + '\\\\' + i) else: num.append(dirName + '\\\\' + i) fun(r'c:\\python27\\Lib') hasDoc = False strTemp = ''

fileobj1 = open('hasdoc.txt','a+') fileobj2 = open('nodoc.txt','a+') for i in num: print i fobj = open(i) for eachline in fobj: if (not hasDoc) and eachline.startswith('\

hasDoc = True elif hasDoc and eachline.startswith('\ hasDoc = False strTemp += eachline break if hasDoc: strTemp += eachline else: break if strTemp != \ fileobj1.write('filename: ' + i + '\\n') fileobj1.write(\ fileobj1.write(strTemp + '\\n') else:

fileobj2.write('文件名:' + i + '\\n') strTemp = \ fobj.close() fileobj1.close() fileobj2.close()

9-10.家庭理财。创建一个家庭理财程序。你的程序需要处理储蓄、支票、金融市场,定期存款等多种账户。为每种账户提供一个菜单操作界面,要有存款、取款、借、贷等操作。另外还要提供一个取消操作选项。用户退出这个程序时相关数据应该保存到文件里取(出于备份的目的,程序执行过程中也要备份)。 答案:太难了,不会。

9-11.Web 站点地址.

a) 编写一个 URL 书签管理程序. 使用基于文本的菜单, 用户可以添加, 修改或者删除书签数据项. 书签数据项中包含站点的名称, URL 地址, 以及一行简单说明(可选). 另外提供检索功能,可以根据检索关键字在站点名称和 URL 两部分查找可能的匹配. 程序退出时把数据保存到一个磁盘文件中去; 再次执行时候加载保存的数据.

b)改进 a) 的解决方案, 把书签输出到一个合法且语法正确的 HTML 文件(.html 或 htm )中,这样用户就可以使用浏览器查看自己的书签清单. 另外提供创建\文件夹\功能, 对相关的书签进行分组管理.

附加题: 请阅读 Python 的 re 模块了解有关正则表达式的资料, 使用正则表达式对用户输入的 URL 进行验证. 答案:不会做,参考自 import re,os

def checkurl(url): regex = re.compile( r'^(?:http|ftp)?://' #http:// or https:// r'(?:(?:[A-Z0-9](?:[A-Z0-9]{0,61}[A-Z0-9])?\\.)+(?:[A-Z]{2,6}\\.?|[A-Z0-9-]{2,}\\.?)|' r'localhost' #localhost

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库python核心编程第二版第9章习题答案在线全文阅读。

python核心编程第二版第9章习题答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1110197.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: