Python程序设计与数据采集(微课版)-课后习题答案.docx
《Python程序设计与数据采集(微课版)-课后习题答案.docx》由会员分享,可在线阅读,更多相关《Python程序设计与数据采集(微课版)-课后习题答案.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章Python开发环境搭建与使用一、填空题1 Pip二、选择题1. A三、判断题1 .错四、简答题2 .略五、操作题3 .略4 . whl2. C3. 错4. 略5. 略6. math.factorial(20)7. random8. pillow3. BD 4. CD 5. ABCD3.错3.略4.错5.错内置类型、内置函数与运算符一、填空题1. 37.1二、选择题1 . B三、判断题1 .对6 .错2. -48.1, 2,2 . A3 .错7 .对3. -43, 4)3. D3.对8.错4. -39. False5310. False6. 54. C5. B4.对5.错9.错10.错四
2、、程序设计题A = eval(input(1请输入集合 A:)B = eval(input(请输入集合 B:)print(fA|B=nA&B=nA-B=nB-A=nAAB=)data = eval(input(输入包含若干正整数的列表:)result = list(filter(lambda num: num8 and num%2=0, data) print(result)keys = eval(input(,输入包含若干正整数的列表keys:)values = eval(input(,输入包含若干正整数的列表values:)result = dict(zip(keysJ values) p
3、rint(result)integers = eval(input(请输入包含若干正整数的列表:)max_last_digit = str(max(integersJ key=lambda num: str(num)-l)-l result = num for num in integers if str(num)-l=max_last_digit print(result)第3章程序控制结构elif path.endswith(.txt):number = number + 1except: pass return numberprint(listDirWidthFirst(C:)3.fro
4、m docx import Documentfrom poser import Composerdef main(filesfinal_docx): new_document = Document() composer = Composer(new_document) for fn in files:composer.append(Document(fn)composer.save(final_docx)main(l.docx, 2.docx, 3.docx, result2,docx) 4.from os import removefrom docx2python import docx2p
5、ythonfrom PIL import Imageobj = docx2python(E:/带公式的文档.docx)for name, imageData in obj.images.items(): if name.endswith(.wmf):#保存wmf格式的矢量图形 with open(name wb) as fp: fp.write(imageData)#把wmf格式的矢量图形转换为png格式的图像with Image.open(name) as im:#使用高分辨率加载图形,默认分辨率72dpi比较模糊 im.load(dpi=300)im.save(name:-3+png)#删
6、除wmf文件 remove(name) 5.from re import subfrom os import listdir, removefrom os.path import splitextfrom moviepy.editor import VideoFileClip from pytesseract import image_to_string from PIL import Imagevideo_file =,自己的视频文件.mp4, video = VideoFileClip(video_file) #提取视频图像#小帧速可以生成少量图片video.write_images_se
7、quence(frame%4d.jpg, fps=0.2)#提取视频图像中的文本,保存为文本文件 def get_videoText():pic_files = fn for fn in listdir() if fn.endswith(.jpg) and fn.startswith(frame) pic_files.sort(key=lambda fn:int(splitext(fn)0.strip(frame ) with open(视频文字.txt, w) as fp:for fn in pic_files:text = image_to_string(Image.open(fn)lan
8、g=chi_sim)text = sub(s,text) fp.write(text)get_videoText()#删除临时文件for fn in listdir():if fn.endswith(.jpg) and fn.startswith(frame): remove(fn)6.from os import mkdirfrom os.path import isdirimport datetimefrom time import sleepfrom threading import Threadimport cv2# 参数0表示笔记本自带摄像头cap = cv2.VideoCaptur
9、e(0)# 获取当前日期时间,例如2019-05-24 23:11:00now = str(datetime.datetime.now():19.replace(:,)dirName = now:10tempAviFile = dirName+now+.aviif not isdir(dirName):mkdir(dirName)# 创建视频文件aviFile = cv2.VideoWriterCtempAviFilecv2.VideoWriter_fourcc(25, (640,480) #帧速和视频宽度、高度def write():while cap.isOpened():#捕捉当前图像,
10、ret=True表示成功,False表示失败ret, frame = cap.read() if ret:#写入视频文件aviFile.write(frame)aviFile.release()Thread(target=write).start()input (按任意键结束.)cap.release()第9章基于SQLite数据库的数据采集一、填空题1. sqlite35. commit()2. connect()6. rollback()3. execute()7. cursor()8. deletefrom test where name=1100011二、选择题1. A2. ABC3.
11、 A7. D8. C三、判断题1.对2.错8.错9.对9. ABCD3. 错 4.对4. C5.错4. executemany()9. read_sql()5. B 6. D6.对 7.错四、程序设计题from random import choice, randrangefrom string import digits, ascii_lettersfrom os import listdir, mkdirfrom os.path import isdirimport sqlite3from time import timefrom openpyxl import Workbook, loa
12、d_workbookdef generateRandomData():生成测试数据,共50个Excel文件,每个文件有5列随机字符串# 如果不存在子文件夹xlsxs,就创建if not isdir(xlsxs): mkdirCxlsxs1)# total表示记录总条数 global total# 候选字符集 characters = digits+ascii_letters# 生成50个Excel文件 for i in range(50): xlsName = xlsxs+str(i)+.xlsx# 随机数,每个xlsx文件的行数不一样 totalLines = 300 # randrange
13、(10*4)# 创建 Workbook,获取第 1 个 Worksheet wb = Workbook() ws = wb.worksheets0# 写入表头ws.appendCfa, c, d, &)# 随机数据,每行5个字段,每个字段3。个字符 for j in range(totalLines):line = .join(choice(characters) for ii in range(30) for jj in range(5) ws.append(line) total += 1# 保存xlsx文件wb.save(xlsName)def eachXlsx(xlsxFn):针对每个
14、xlsx文件的生成器#打开Excel文件,获取第1个Worksheetwb = load_workbook(xlsxFn)ws = wb.worksheets0for index, row in enumerate(ws.rows):#忽略表头if index = 0: continueyield tuple(map(lambda x:x.value, row)def xlsx2sqlite():从批量Excel文件中导入数据到SQLite数据库#获取所有xlsx文件名xlsxs = (xlsxsW+fn for fn in listdir( xlsxs)#连接数据库,创建游标with sql
15、ite3.connect(dataxlsx.db) as conn:cur = conn.cursor()cur.execute(CREATE TABLE IF NOT EXISTS fromxlsx(a,b,c,d,e) for xlsx in xlsxs:#批量导入,减少提交事务的次数,可以提高速度sql = INSERT INTO fromxlsx VALUES(1 cur.executemany(sqlJ eachXlsx(xlsx) mit()# 用来记录生成的随机数据的总行数total = 0# 生成随机数据generateRandomData()# 导入数据,并测试速度start
16、 = time()xlsx2sqlite()delta = time()-startprint(导入用时:1 j delta)print(导入速度(条/秒):total/delta)第1。章 基于网页的数据采集1. B2. B3. A4. B5. D6. D7. A8. C9. D10. D11. A12. C13. C14. B15. A三、判断题1.对2.对3.错4.对5.错6.对7.错8.对9.对10.错11.错12.对13.对14.错15.对16.对17.错18.对19.错20.对21.错22.错23.错一、填空题1. urlopen()6. content10. start_urls
17、二、选择题2.7.headers 3. 31.94 startproject4.8.53.0crawl5.9.Range runspider四、1.程序设计题from os import mkdirfrom datetime import datefrom re import findall sub, Sfrom collections import Counterfrom urllib.parse import urljoinfrom urllib.request import urlopenfrom os.path import basename., isdirfrom jieba imp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 程序设计 数据 采集 微课版 课后 习题 答案
限制150内