Python程序设计基础实训教程-参考答案 吕宇飞_第1页
Python程序设计基础实训教程-参考答案 吕宇飞_第2页
Python程序设计基础实训教程-参考答案 吕宇飞_第3页
Python程序设计基础实训教程-参考答案 吕宇飞_第4页
Python程序设计基础实训教程-参考答案 吕宇飞_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.7递归算法一、选择题:1.A2.C3.B4.B5.D6.D7.A8.C二、操作题:1.参考答案deff(s):iflen(s)==0:returnselse:returnf(s[1:])+s[0]s=input('请输入一个字符串:')print('逆序后为:{0}'.format(f(s)))2.参考答案deff(n):ifn==1:return1else:returnf(n-1)+(-1)**(n+1)*nprint('1-2+3-4+5-6+7-8+9-10+11-12+13={0}'.format(f(13)))

第五章数据采集5.1爬取一张网页选择题:1、C 2、C 3、A 4、B 5、C 二、操作题1、PyCharm图形界面安装bs4①①②③④⑤pip命令安装bs4:pipinstallbs42、(3)参考答案importrequestsurl='http://localhost:80/index.html'req=requests.get(url)html=req.content.decode()print(html)5.2读懂一张网页一、选择题1.B 2.C3.A4.B5.D6.B7.B8.B9.A10.A11.C12.(1)B (2)C(3)B (4)D二、操作题1、参考答案<!DOCTYPEhtml><htmllang="en"><head><title>hello</title></head><body><h1>你好!世界!</h1></body></html>参考答案(1)略(2)<ulid="nav"><li><ahref="#"id="color">首页</a></li><li><ahref="#">关于我们</a></li><li><ahref="#">活动详情</a></li><li><ahref="#">购买门票</a></li><li><ahref="#">联系我们</a></li></ul>(3)参考答案<ul><li>重磅|第五届“致新奖”主题大赛26强名单</li><li>展商推荐|绝艺——非遗交易的开创者</li><li>第五届中国工艺“致新奖”大众投票已开启</li><li>IAC-SHOW全体员工祝福祖国繁荣昌盛</li><li>集思广益,提升中国美术行业商业化运作水平</li></ul>(4)<imgsrc="img/9.jpg"/>5.3正则表达式(一)一、选择题1.B 2.C 3.A 4.C 5.D6.C 7.B 8.C 9.D 10.D11.C 12.A 13.A 14.B 15.C16.C 17.B 18.B 19.D 20.A21.D 22.A 23.A 24.C二、操作题1.参考答案:re1="\d{6}"或re1="[0-9]{6}"2.参考答案:re1="\d+\.\d+\.\d+\.\d+"或re1=[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+3.参考答案:re1="1[3-9]\d{9}"或re1="1[3-9][0-9]{9}"5.3正则表达式(二)一、选择题1.C 2.C 3.B 4.A 5.C6.B 7.A 8.C 9.D 10.C11.D 12.C 13.A 14.C 15.B二、操作题1.参考答案:importrecontent="<pclass='zan'>点赞数:32</p>"result=re.findall(r'\d+',content)print(result)运行程序,输出结果为:['32']2.参考答案:importre#家庭购物清单str='买3斤苹果,2箱牛奶,10个鸡蛋;别忘了还有1袋大米' result=re.findall(r'\d+.{3}',str)print(result)运行程序,输出结果为:['3斤苹果','2箱牛奶','10个鸡蛋','1袋大米']3.参考答案:importrequests,reurl="/"req=requests.get(url)html=req.content.decode()result=re.findall(r'bold">(.*?)</',html)#【转非贪婪模式】result1=re.findall(r'default">(.*?)</',html)temp=zip(result,result1)dict1=dict(temp)forkey,valueindict1.items():print(key+":"+value)运行程序,输出结果为:张三:西湖区XX小区22号李四:余杭区XX小区609号4.参考答案:importrequests,reurl="/"req=requests.get(url)html=req.content.decode()result=re.findall(r'/[^"]+',html)foriinresult:print(i)运行程序,输出结果为:/video/rf.mp4/audio/gb.mp35.4文件的读写一、选择题1.A 2.A3.B4.B5.D6.(1)A(2)B7.D8.(1)D(2)B9.A10.D11.A12.B 13.C14.C 15.B16.D 17.C18.D二、操作题1.参考答案withopen('D:\\邀请函.txt','r',encoding='utf-8')asfile:content=file.read()print(content)2.参考答案withopen('D:\\运动会项目.txt','a',encoding='utf-8')asfile:file.write('\n'+'4*100接力'+'\n'+'4*200接力'+'\n'+'4*400接力')withopen('D:\\运动会项目.txt','r',encoding='utf-8')asfile:print(file.read())3.参考答案①中填入选项( D )②中填入选项( C )③中填入选项(A )④中填入'\n'⑤中填入dic[i]4.参考答案withopen('D:\\添加标点.txt','w+',encoding='utf-8')asfile: file.write('教练张东亚外出了') file.seek(6)#1个汉字等于3个字节 t=file.read() data=','+t file.seek(6) file.write(data) file.seek(0) print(file.read())5.略参考答案importrewithopen("D:\\address\\address.html","r",encoding="utf-8")asfile:content=file.read()result=re.findall(r'bold">(.*)</',content)result1=re.findall(r'address">(.*)</',content)withopen("D:\\address\\客户信息.txt","w",encoding="UTF-8")asfile:foriinrange(len(result)):file.write(result[i]+':'+result1[i]+"\n")运行程序,打开“客户信息.txt”文件,结果如下:冯胤:渝中区中山二路120号何仪:江津区汇兴路166号

第六章文件管理6.1创建文件夹一、选择题1.D2.D3.C4.C5.A6.B7.D8.D9.C10.A11.D12.C13.D14.D15.B16.B17.C18.D19.C20.C21.D22.C23.C24.D25.D二、操作题1.参考答案#-*-coding:utf-8-*-importosos.chdir("D:\\")os.mkdir("小学")os.chdir("小学")os.mkdir("初中")os.chdir("初中")os.mkdir("高中")os.chdir("高中")os.mkdir("大学")2.参考答案1#-*-coding:utf-8-*-importosos.chdir("D:\\")os.mkdir("浙江省")os.chdir("浙江省")os.mkdir("杭州市")os.mkdir("宁波市")os.chdir("杭州市")os.mkdir("西湖区")os.mkdir(r"西湖区\九莲新村")os.mkdir("余杭区")os.mkdir(r"余杭区\复地上城")os.chdir(r"..\宁波市")os.mkdir("江北区")os.mkdir(r"江北区\盛世嘉苑")os.mkdir("鄞州区")os.mkdir(r"鄞州区\东裕社区")参考答案2#-*-coding:utf-8-*-importosos.makedirs(r"D:\浙江省\杭州市\西湖区\九莲新村")os.makedirs(r"D:\浙江省\杭州市\余杭区\复地上城")os.makedirs(r"D:\浙江省\宁波市\江北区\盛世嘉苑")os.makedirs(r"D:\浙江省\宁波市\鄞州区\东裕社区")3.参考答案#-*-coding:utf-8-*-importosos.chdir("D:\\")os.mkdir("唱歌比赛")os.chdir("唱歌比赛")foriinrange(1,16):os.mkdir("第"+str(i)+"组")4.参考答案1#-*-coding:utf-8-*-importosqu=['拱墅区','西湖区']jd=[['半山','长庆','朝晖','潮鸣','崇贤','大关','德胜','德胜东','丁桥','拱宸桥','勾庄','和睦','和平'],['翠苑','古荡','黄龙','湖墅','嘉绿','九莲','良渚','留下','清波','三墩','申花','文教','文三','文三西路']]foriinrange(2):p1="D:\\"+qu[i]os.mkdir(p1)forkinjd[i]:p2=p1+'\\'+k+"街道"os.mkdir(p2)4.参考答案2#-*-coding:utf-8-*-importosqu=['拱墅区','西湖区']gs=['半山','长庆','朝晖','潮鸣','崇贤','大关','德胜','德胜东','丁桥','拱宸桥','勾庄','和睦','和平']xh=['翠苑','古荡','黄龙','湖墅','嘉绿','九莲','良渚','留下','清波','三墩','申花','文教','文三','文三西路']foriinqu:os.mkdir("D:\\"+i)forkings:p='D:\\拱墅区\\'+k+"街道"os.mkdir(p)forkinxh:p='D:\\西湖区\\'+k+"街道"os.mkdir(p)5.(一)程序注释importos#导入os模块print(os.getcwd())#获取当前位置并输出os.chdir("D:")#切换当前文件夹到D盘print(os.getcwd())#获取当前位置并输出os.makedirs(r'D:\浙江\杭州')#创建级联文件夹D:\浙江\杭州os.chdir(r'D:\浙江\杭州')#切换当前文件夹到“D:\浙江\杭州”print(os.getcwd())#获取当前位置并输出os.mkdir('拱墅区')#在“D:\浙江\杭州”下创建子文件夹'拱墅区'os.chdir(r'..')#退到上一层目录“D:\浙江”ifnotos.path.isdir('宁波'):#如果“D:\浙江”下不存在文件夹“宁波”os.mkdir('宁波')#新建文件夹“宁波”path=r'D:\江苏\南京'#指定路径'D:\江苏\南京'ifnotos.path.exists(path):#如果不存在路径'D:\江苏\南京'os.makedirs(path)#创建该级联文件夹foriinrange(5,10):#循环变量i值分别为5、6、7、8、9os.makedirs(path+'\\'+'区'+str(i))#创建文件夹“5区”~"9区"(二)目录树6.2整理文件与文件夹一、选择题1.A2.B3.D4.C5.B6.C7.C8.B9.B10.A11.D12.C13.A14.D15.C16.B17.A18.C19.A20.C21.D22.A23.C24.C25.C二、操作题1.(1)运行结果④0409C:0409\cliconf.chm⑤C:\Windows\Help\mui\0409\cliconf.chm(2)注释答案:①把路径按“\”切割,得到各字符串组成的列表②拼接“C:,0409,cliconf.chm”成新路径③把x列表中的字符串用“\”连接成路径2.(1)程序填空答案:①os.listdir(p)②fn.split('.')③lb[1]④kzm.upper()⑤move(fn,dxkzm)(2)运行结果:['BTL','CVB','dbf','DLL','exe','ini','jpg','txt']3.(1)程序填空答案①os,shutil ②os.path.join(p,yf)③notos.path.exists(pyf)④os.mkdir(pyf)⑤os.path.join(p,fn)⑥os.path.isfile(pfn)⑦basename(pfn)⑧splitext(f1)[0] ⑨split('年')[1]⑩path,dirs,filesin(2)运行结果:D:\按月份备份\11月[]['2023年11月.xlsx']D:\按月份备份\1月[]['2022年1月.xlsx','2023年1月.xlsx','2024年1月.xlsx']D:\按月份备份\4月[]['2022年4月.xlsx','2023年4月.xlsx','2024年4月.xlsx']D:\按月份备份\7月[]['2022年7月.xlsx','2023年7月.xlsx','2024年7月.xlsx']4.(1)程序填空答案:①shutil.copytree(p2,p) ②['中文','英文','法文','俄文']③pyy=os.path.join(p,yy) ④shutil.move(pfn,pyy)⑤print(p3,ds,fs)(2)程序运行结果答案D:\文件归类['中文','俄文','法文','英文'][]D:\文件归类\中文[]['中文1.doc','中文2.doc','中文3.doc','中文4.doc','中文5.doc']D:\文件归类\俄文[]['俄文1.doc','俄文2.doc','俄文3.doc','俄文4.doc','俄文5.doc']D:\文件归类\法文[]['法文1.doc','法文2.doc','法文3.doc','法文4.doc','法文5.doc']D:\文件归类\英文[]['英文1.doc','英文2.doc','英文3.doc','英文4.doc','英文5.doc']5.(1)参考答案:importos,shutilp2=r"D:\设计素材"p=r"D:\多媒体"ifnotos.path.exists(p):shutil.copytree(p2,p)os.chdir(p)forfninos.listdir(p):ifos.path.isfile(fn):lb=fn.split('.')ext=lb[1].lower()#扩展名小写ifextin['gif']:shutil.move(fn,"动画")elifextin['jpg','bmp','png']:shutil.move(fn,"图片")elifextin['avi','wmv','mp4']:shutil.move(fn,"视频")forpath,dirs,filesinos.walk(p):print(path,dirs,files)(2)运行结果:D:\多媒体['动画','图片','视频'][]D:\多媒体\动画[]['cool1.gif','cool11.gif','cool12.gif','cool17.gif','cool4.gif']D:\多媒体\图片[]['cool10.png','cool13.jpg','cool14.png','cool16.bmp','cool18.bmp','cool2.jpg','cool20.png','cool3.bmp','cool5.jpg','cool6.bmp','cool7.jpg']D:\多媒体\视频[]['cool15.avi','cool19.avi','cool8.mp4','cool9.wmv']6.3重命名批量文件一、选择题1.D2.B3.C4.A5.B6.D7.C8.B9.A10.D11.D12.C13.A14.D15.D16.D17.C18.B19.B20.C21.D二、操作题1.参考答案:#-*-encoding=utf-8-*-importos,shutilpath="D:\文本"ifnotos.path.exists(path):os.mkdir(path)#创建“文本”文件夹os.chdir(path) #把“文本”设置为当前文件夹foriinrange(1,21): #[0,20]file=open(str(i)+".txt",'w') #创建空文件如:2.txtfile.close() #关闭文件print(os.listdir(path)) #查看“文本”文件夹2.参考答案:#-*-encoding=utf-8-*-importos,shutil,random #导入模块path=r"D:\文本"path2="D:\文本2"ifnotos.path.exists(path2): #如果“文本2”不存在shutil.copytree(path,path2) #复制“文本”成“文本2”os.chdir(path2) #当前文件夹切换成“文本2”forfninos.listdir(path2): #遍历未修改前的文件名fn2='wb'+fn #新文件名wb1.txtos.rename(fn,fn2)#改名print(os.listdir(path2)) #查看变化后的文件夹3.(1)程序填空答案①importos,shutil,random ②shutil.copytree(path,path2)③os.chdir(path2)④os.listdir(path2)⑤sz=str(random.randint(21,99))⑥szs.append(sz)⑦sz+'.txt' ⑧os.rename(fn,fn2)⑨szs[i]+=".txt"⑩os.listdir(path2)3.(2)程序运行结果:['1.txt','10.txt','11.txt','12.txt','13.txt','14.txt','15.txt','16.txt','17.txt','18.txt','19.txt','2.txt','20.txt','3.txt','4.txt','5.txt','6.txt','7.txt','8.txt','9.txt']['69.txt','67.txt','70.txt','92.txt','81.txt','84.txt','79.txt','75.txt','26.txt','55.txt','35.txt','29.txt','21.txt','37.txt','23.txt','77.txt','24.txt','74.txt','58.txt','38.txt']['21.txt','23.txt','24.txt','26.txt','29.txt','35.txt','37.txt','38.txt','55.txt','58.txt','67.txt','69.txt','70.txt','74.txt','75.txt','77.txt','79.txt','81.txt','84.txt','92.txt']4.参考答案:importos,shutilwithopen('D:\\名单.txt','r',encoding='utf-8')asf:#读取文件md2=f.read() #字符串md=md2.split('\n') md[0]=md[0][-3:] #名字第一个有乱码,取出最后3个字符print(md) #显示名单内容p2="D:\\文本4"shutil.copytree("D:\\文本",p2)#复制”文本“文件夹为”文件4“os.chdir(p2) #切换”文本4“成当前目录未fns=os.listdir(p2) #系列文件名print([iforiinrange(1,21)]) #数字列表foriinrange(20):os.rename(fns[i],md[i]+".txt")#重命名1.txt-->姚虹虹.txtprint(os.listdir(p2)) #查看改名情况第七章快捷办公7.1读取Excel文件的数据一、选择题:1.B 2.C 3.B 4.D 5.A 6.D 7.D 8.A 9.B 10.A 11.D 12.B二、操作题:1.参考答案importopenpyxlwb=openpyxl.load_workbook(r"D:\公司月度财务报告.xlsx")ws=wb.activeformyRowinws.rows:ifmyRow[1].value=="收入合计:":print(myRow[2].value)2.参考答案importopenpyxlwb=openpyxl.load_workbook(r"D:\员工名单.xlsx")ws=wb.activeformyRowinws.rows:formyCellinmyRow:print(myCell.value,end="")print()3.参考答案importopenpyxlwb=openpyxl.load_workbook(r"D:\产品销售数据.xlsx")ws=wb.activeformyRowinws.rows:ifmyRow[1].value!="水果名称":print(myRow[1].value+"销售数量:"+str(myRow[2].value)+"kg")4.参考答案importopenpyxlwb=openpyxl.load_workbook(r"D:\学生成绩.xlsx")sheet_chinese=wb["语文"]sheet_math=wb["数学"]scores={}formyRowinsheet_chinese.rows:ifmyRow[0].value!="姓名":scores[myRow[0].value]="语文:"+str(myRow[2].value)formyRowinsheet_math.rows:ifmyRow[0].value!="姓名":scores[myRow[0].value]+="数学:"+str(myRow[2].value)forname,scoreinscores.items():print(name+score)7.2数据的写入和操作一、选择题:1.C 2.B 3.B 4.B 5.A 6.A 7.A 8.C 9.D 10.C 11.D 12.C 13.C 14.B 15.B 16.C 17.D 18.B二、操作题:1.参考答案importopenpyxlwb=openpyxl.load_workbook(r"D:\支出数据.xlsx")ws=wb.activews["B2"].value=12000ws["B15"].value+=2000wb.save(r"D:\支出数据.xlsx")2.参考答案importopenpyxlwb=openpyxl.load_workbook(r"D:\销售数据.xlsx")ws=wb["第一季度"]s=0foriinrange(ws.max_row,1,-1):ifws.cell(i,3).value=="食品":ws.delete_rows(i)else:s+=ws.cell(i,4).valuews.append(["","","非食品类销售总计",s])wb.save(r"D:\销售数据.xlsx")3.参考答案importopenpyxlwb=openpyxl.load_workbook(r"D:\学生成绩.xlsx")ws=wb["语文成绩"]s=0k=0foriinrange(2,ws.max_row+1):ifws.cell(i,2).value<60:ws.cell(i,3).value="不及格"else:s+=ws.cell(i,2).valuek+=1ws.append(["及格的学生的平均分",round(s/k,2)])wb.save(r"D:\学生成绩.xlsx")4.参考答案importopenpyxlwb=openpyxl.load_workbook(r"D:\仓储中心.xlsx")ws=wb["库存"]foriinrange(2,ws.max_row+1):ws.cell(i,3).value*=2ws.insert_rows(11)data=["A010","健康产品-维生素",90,2023/9/12,"健康先锋"]foriinrange(len(data)):ws.cell(row=11,column=i+1).value=data[i]foriinrange(2,ws.max_row+1):ifws.cell(i,3).value<40:ws.cell(i,6).value="需订货"wb.save(r"D:\仓储中心.xlsx")7.3批量合并Excel文件一、选择题:1.B 2.C3.A4.D5.D6.A7.D8.C9.A10.D11.B12.D13.D14.A 15.A16.C二、操作题:1.参考答案importos,openpyxlNewBook=openpyxl.Workbook()NewBook.remove(NewBook["Sheet"])folder_path='D:\\销售业绩'xlsx_files=[]forfileinos.listdir(folder_path):iffile.endswith('.xlsx'):xlsx_files.append(file)forfileinxlsx_files:wb=openpyxl.load_workbook("D:\\销售业绩\\"+file)ws=wb.activeNewSheet=NewBook.create_sheet(ws.title)forRowinws.rows:TempList=[]forCellinRow:TempList.append(Cell.value)NewSheet.append(TempList)s=0k=NewSheet.max_row+1foriinrange(2,k):s+=NewSheet["C"+str(i)].valueNewSheet.cell(k,2).value="销售总额"NewSheet.cell(k,3).value=ssheetNames=NewBook.sheetnamesws=NewBook.copy_worksheet(NewBook["一季度"])ws.title="汇总"ws["C1"].value="年度业绩"foriinrange(2,ws.max_row+1):fx="="forjinsheetNames:fx+=j+"!C"+str(i)+"+"ws["C"+str(i)].value=fx[:-1]NewBook.save("D:\\销售业绩\\业绩汇总.xlsx")2.参考答案importos,openpyxlNewBook=openpyxl.Workbook()NewBook.remove(NewBook["Sheet"])folder_path=‘D:\\健身活动记录'xlsx_files=[]forfileinos.listdir(folder_path):iffile.endswith('.xlsx'):xlsx_files.append(file)forfileinxlsx_files:wb=openpyxl.load_workbook("D:\\健身活动记录\\"+file)ws=wb.activeNewSheet=NewBook.create_sheet(ws.title)forRowinws.rows:TempList=[]forCellinRow:TempList.append(Cell.value)NewSheet.append(TempList)s=0k=NewSheet.max_row+1foriinrange(2,k):s+=NewSheet["C"+str(i)].valueNewSheet.cell(k,2).value="平均健身次数"NewSheet.cell(k,3).value=s/(k-2)NewSheet.cell(1,4).value="活跃会员"foriinrange(2,k):ifNewSheet.cell(i,3).value>NewSheet.cell(k,3).value:NewSheet.cell(i,4).value=1else:NewSheet.cell(i,4).value=0sheetNames=NewBook.sheetnamesws=NewBook.copy_worksheet(NewBook["Q1"])ws.delete_rows(ws.max_row)ws.delete_cols(4)ws.title="年度健身数据汇总"ws["C1"].value="活跃会员总次数"foriinrange(2,ws.max_row+1):fx="="forjinsheetNames:fx+=j+"!D"+str(i)+"+"ws["C"+str(i)].value=fx[:-1]NewBook.save(“D:\\健身活动记录\\年度会员健身数据汇总.xlsx")7.4批量合并多个Excel文件到工作表一、选择题:1.C2.A3.A4.C5.A6.A7.A8.C9.B10.C二、操作题:1.参考答案importos,openpyxlNewBook=openpyxl.Workbook()NewSheet=NewBook.activeNewSheet.title="BMI计算"wb=openpyxl.load_workbook("D:\\健康数据\\身高.xlsx")ws=wb.activeforrowinws.rows:TempList=[]forcellinrow[:3]:TempList.append(cell.value)NewSheet.append(TempList)wb=openpyxl.load_workbook("D:\\健康数据\\体重.xlsx")ws=wb.activek=ws.max_column+1forrowinws.rows:forcellinrow[0:]:NewSheet.cell(cell.row,k).value=cell.valueNewSheet.cell(1,5).value="BMI指数"foriinrange(2,NewSheet.max_row+1):height=NewSheet.cell(i,3).value/100weight=NewSheet.cell(i,4).valueNewSheet.cell(i,5).value=weight/height**2NewBook.save("D:\\健康数据\\健康数据汇总.xlsx")2.参考答案importos,openpyxlNewBook=openpyxl.Workbook()NewSheet=NewBook.activeNewSheet.title="月度绩效"wb=openpyxl.load_workbook("D:\\月度绩效\\销售数据.xlsx")ws=wb.activeforrowinws.rows:TempList=[]forcellinrow[:2]:TempList.append(cell.value)NewSheet.append(TempList)folder_path="D:\\月度绩效"xlsx_files=[]forfileinos.listdir(folder_path):iffile.endswith('.xlsx'):xlsx_files.append(file)forfileinxlsx_files:wb=openpyxl.load_workbook(folder_path+"\\"+file)ws=wb.activek=NewSheet.max_column+1forcellinws['C']:NewSheet.cell(cell.row,k).value=cell.valueforcellinNewSheet["C1:E1"][0]:ifcell.value=="销售额":xs=cell.columnelifcell.value=="客户满意度":kh=cell.columnelse:cq=cell.columncol=["","A","B","C","D","E"]forrowinrange(2,NewSheet.max_row+1):NewSheet.cell(row,6).value="="+col[xs]+str(row)+"/MAX($"+col[xs]+"$"+str(row)+":$"+col[xs]+"$"+str(NewSheet.max_row)+")*50"NewSheet.cell(row,7).value="="+col[kh]+str(row)+"/5*30"NewSheet.cell(row,8).value="=IF("+col[cq]+str(row)+">20,20,IF("+col[cq]+str(row)+"<10,0,"+col[cq]+str(row)+"*2-20))"NewSheet.cell(row,9).value="=SUM(F"+str(row)+":H"+str(row)+")"NewSheet.cell(1,6).value="销售额核算"NewSheet.cell(1,7).value="客户满意度核算"NewSheet.cell(1,8).value="出勤情况核算"NewSheet.cell(1,9).value="绩效评分"NewBook.save("D:\\月度绩效\\员工月度绩效报告.xlsx")

第八章爬虫应用8.1爬取一节小说一、选择题:1.B2.D3.C4.D5.C6.D7.A8.C9.D10.A11.B12.B13.B14.D15.C二、操作题:1.参考答案:#-*-encoding=utf-8-*-importos,requestsp=r'/index.html'req=requests.get(p)p2=r"D:\倚天屠龙记"ifnotos.path.exists(p2):os.mkdir(p2)withopen(r'D:\倚天屠龙记\index.html','wb')asf:f.write(req.content)2.参考答案:#-*-encoding=utf-8-*-importos,requestsfrombs4importBeautifulSoupp=r'/index.html'req=requests.get(p)#从服务器读取网页内容html=req.content.decode()#解码成字符串soup=BeautifulSoup(html,'html.parser')#封装成标准的标签树t1=soup.find_all('p',attrs={'class':'time'})[1]#<pclass="time">出版社:三联出版社</p>t2=t1.text#出版社:三联出版社print(t2[-5:])#三联出版社。3.程序填空①frombs4importBeautifulSoup②req=requests.get(wz)③req.content.decode()④BeautifulSoup⑤soup.find('ul',attrs={'class':'mlist'})⑥t1.find_all('li')⑦li.text+'\n'⑧notos.path.exists(p2)⑨open(p2+'\目录.txt','w')⑩write(ml)8.2爬取一部小说一、选择题1.C2.C3.C4.A5.A6.B7.C8.B9.B10.D11.C12.C13.A14.A15.B16.A17.D18.D二、操作题1.参考答案:importos,requestsfrombs4importBeautifulSoupp=r'/'req=requests.get(p+'index.html')html=req.content.decode()soup=BeautifulSoup(html,'html.parser')img1=soup.select_one("#ytt")['src']#方法1img2=soup.select_one(".yt>#ytt")['src']#方法2img3=soup.select_one(".booklist#ytt")['src']#方法3img4=soup.select_one("#pu_box>.main>.booklistimg")['src']#方法4img5=soup.select_one(".pu_box.booklist.yt>img")['src']#方法5print(img1,img2,img3,img4,img5)2.参考答案:importos,requestsfrombs4importBeautifulSoupp=r'/'req=requests.get(p+'index.html')html=req.content.decode()soup=BeautifulSoup(html,'html.parser')cljs=soup.select(".main>div>ul[class='mlist']a")#<ul>下超链接片段集合foriincljs:#遍历超链接代码判断print(p+i['href'])#超链接路径+链接地址3.程序填空答案①requests.get(p+'index.html') ②req.content.decode()③#sy>audio>source ④t1['src']⑤p+t2 ⑥requests.get(clj)⑦content ⑧os.path.basename(clj)⑨pmp3,'wb' ⑩mp3

8.3爬取图书畅销榜一、选择题1.A2.B3.C4.A5.D6.B7.A8.D9.A10.C11.A12.C13.D14.B15.C16.C17.D18.D二、操作题1.参考答案:#-*-encoding=utf-8-*-importrequestsfrombs4importBeautifulSoupurl="/"UA="Mozilla/5.0(WindowsNT6.1;Win64;x64) AppleWebKit/537.36(KHTML,like Gecko)Chrome/90.0.4430.212 Safari/537.36"header={"User-Agent":UA,"Referer":url}req=requests.get(url,headers=header)html=req.content.decode()soup=BeautifulSoup(html,"html.parser")cakesSoup=soup.select("body>ul>li")#获取蛋糕名cakesName=[]forcakeincakesSoup:cakesName.append(cake.select(".title")[0].text)#获取蛋糕售价cakesPrice=[]forcakeincakesSoup:cakesPrice.append(cake.select(".sub")[0].text.split(":")[1])#将蛋糕名、蛋糕售价打包形成新列表并输出cakes=list(zip(cakesName,cakesPrice))forcakeincakes:print("蛋糕名:"+cake[0]+"\t"+"售价:"+cake[1])2.参考答案:#-*-encoding=utf-8-*-importrequestsfrombs4importBeautifulSoupurl="/"UA="Mozilla/5.0(WindowsNT6.1;Win64;x64) AppleWebKit/537.36(KHTML,like Gecko)Chrome/90.0.4430.212 Safari/537.36"header={"User-Agent":UA,"Referer":url}req=requests.get(url,headers=header)html=req.content.decode()soup=BeautifulSoup(html,"html.parser")spotsSoup=soup.select("body>ul>li")#获取景区名spotsName=[]forspotinspotsSoup:spotsName.append(spot.select(".title")[0].text)#获取景区评分spotsScore=[]forspotinspotsSoup:spotsScore.append(spot.select(".title1")[0].text.split(":")[1])#获取景区地址spotsPrice=[]forspotinspotsSoup:spotsPrice.append(spot.select(".sub")[0].text.split(":")[1])#将景区名、景区评分、景区地址打包形成新列表并输出spot

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论