Python大数据基础与实战(范晖)课后题答案_第1页
Python大数据基础与实战(范晖)课后题答案_第2页
Python大数据基础与实战(范晖)课后题答案_第3页
Python大数据基础与实战(范晖)课后题答案_第4页
Python大数据基础与实战(范晖)课后题答案_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

课后题答案第1章解释性、面向对象、动态数据类型、吉多·范罗苏姆Python包、模块、语句B 5.C6.使用pip工具来安装扩展库,指令为:pipinstall库文件名。用pip命令管理Python扩展库需要在命令提示符环境中进行,并且需要切换至pip所在目录。7.首先将.py源文件和python.exe文件关联,将.pyw源文件和pythonw.exe关联。然后双击源文件即可执行。8.常用的有三种方式,分别为import模块名[as别名]from模块名import对象名[as别名]frommathimport*Python被称为人工智能的专用语言,Python下众多的开源框架对人工智能应用领域提供了强大的支持,如计算机视觉库OpenCV、机器学习框架TensorFlow等。借助于Django、web2py等框架,可以快速开发网站应用程序。数据分析可以使用numpy、pandas、matplotlib、scipy等库。第2章Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址id()在Python中/表示普通除法(也叫真除法),结果是实数,而//表示整除,得到的结果是整数,并且自动向下取整。x=input('请输入3位以上的数字:')iflen(x)>=3: x=int(x) print('结果是:',x//100)else: print('输入错误!')x=input("inputanumber:")a,b,c=map(int,x)print("resultis:{0}\t{1}\t{2}".format(a,b,c))sum()True19False(True,5)True551:2:314.x=input("inputthreenumbers:")a,b,c=map(int,x.split())print("sortedresultis:",sorted((a,b,c)))第3章1.importrandomx=[random.randint(0,200)foriinrange(100)]#第一种实现:使用集合s=set(x)forvins: print(v,':',x.count(v))#第二种实现:使用字典d=dict()forvinx: d[v]=d.get(v,0)+1fork,vind.items(): print(k,v,sep=':')2.x=input("inputalist:")x=eval(x)p=input("inputtwopositon:")begin,end=map(int,p.split())print(x[begin:end+1])[6foriinrange(10)]4.importrandomx=[random.randint(0,100)foriinrange(20)]print(x)x[:10]=sorted(x[:10])x[10:]=sorted(x[10:],reverse=True)print(x)5.[]6.[18,19]7.([1,3],[2])8.当列表增加或删除元素时,列表对象自动进行内存扩展或收缩,从而保证元素之间没有缝隙,但这涉及到列表元素的移动,效率较低,应尽量从列表尾部进行元素的增加与删除操作以提高处理速度。9.[1,2,3,1,2,3,1,2,3]10.['1','2','3']第4章A 2.D 3.C 4.D 5.C6.name=input("请输入你的名字:")place=input("请输入你经常去的地方:")like=input("请输入你平时的爱好:")print('可爱的',name,',','最喜欢在',place,'地方进行',like)或者:test="可爱的{0},最喜欢在{1}地方进行{2}"name=input("请输入你的名字:")place=input("请输入你经常去的地方:")like=input("请输入你平时的爱好:")v=test.format(name,place,like)print(v)7.s=input("请输入一个待统计的字符串:")print(s.count(""))第5章Continue、breakwhileCBPython提供了while和for两种循环控制结构,用来处理需要进行的重复操作,直到满足某些特定条件。while循环一般用于循环次数难以提前确定的情况,也可以用于循环次数确定的情况。for循环一般用于循环次数可以提前确定的情况,尤其适用于枚举或者遍历序列、迭代对象中元素的场合。for循环写的代码通常更加清晰简单,因此编程时建议优先使用for循环。相同或不同的循环结构之间可以相互嵌套,也可以和选择结构嵌套使用,用来实现更为复杂的逻辑。6.x=input('Pleaseinputaninteger:')x=int(x)ifx%2==0: print("{:d}is偶数!".format(x))else: print("{:d}is奇数!".format(x))7.x=input('Pleaseinputanintegerlessthan1000:')x=eval(x)t=xi=2result=[]whileTrue: ift==1: break ift%i==0: result.append(i) t=t//ielse: i+=1print(x,'=','*'.join(map(str,result)))第6章1.importmathdefIsPrime(v): n=int(math.sqrt(v)+1) foriinrange(2,n): ifv%i==0: return'No' else: return'Yes'print(IsPrime(17))print(IsPrime(30))print(IsPrime(813))2.defdemo(v): capital,little,digit,other=(0,)*4 #或者capital=little=digit=other=0 foriinv: if'A'<=i<='Z': capital+=1 elif'a'<=i<='z': little+=1 elif'0'<=i<='9': digit+=1 else: other+=1return(capital,little,digit,other)x='PEP498,formattedstringliterals.'print(demo(x))3.会。defdemo(): a=3 print(a)a=5demo()4.defmySum(data): sum=0 fordindata: sum+=d returnsum5.defmySorted(lst,reverse=False): lst=lst[:] length=len(lst) foriinrange(0,length-1): forjinrange(i+1,length): #比较相邻两个元素大小,并根据需要进行交换 #默认升序排序 exp='lst[i]>lst[j]' #如果reverse=True则降序排序 ifreverse: exp='lst[i]<lst[j]' ifeval(exp): lst[i],lst[j]=lst[j],lst[i] returnlst-2

defdemo(*v): print(max(v))print(sum(v))deff(n):a=b=c=1foriinrange(n-3):c,b,a=a+b+c,c,breturnc第7章B2.C3.D4.C5.AclassStudent: #学生类count=0 #计数def__init__(self,name,age):=nameself.age=ageStudent.count+=1 #要使得变量全局有效,就定义为类的属性deflearn(self):print("islearning")stu1=Student("jack",33)stu2=Student("amy",24)stu3=Student("lucy",22)stu4=Student("lulu",45)print("实例化了%s个学生"%Student.count)7.classB:def__init__(self):passdefhandle(self):print("B.handle")classA(B):def__init__(self):super().__init__()defhandle(self):super().handle() #super依赖于继承a=A()a.handle()第8章C2.A3.D4.B5.A6.try:score=int(input("请输入学生的成绩:"))ifscore>=90andscore<=100:print("A:优秀")elifscore>=80andscore<90:print("B:良好")elifscore>=60andscore<80:print("C:合格")else:assertscore>60,"D:不及格"exceptExceptionasresult:print("低于60分:\n",result)7.classmy_error(Exception):def__init__(self,stri):self.leng=len(stri)defprocess(self):ifself.leng<5:return'Theinputisoflength%s,expectingatleast5'%self.lengelse:return'printsuccess'try:s=input("请输入字符串:")raisemy_error(s)exceptmy_errorase:print(cess())第9章C 2.D 3.D 4.A 5.B6.oldFileName=input("请输入要拷贝的文件名字:")oldFile=open(oldFileName,'r')ifoldFile:#提取文件的后缀fileFlagNum=oldFileName.rfind('.')iffileFlagNum>0:fileFlag=oldFileName[fileFlagNum:]#组织新的文件名newFileName=oldFileName[:fileFlagNum]+'[复件]'+fileFlag#创建新文件newFile=open(newFileName,'w')#把旧文件中的数据复制到新文件中forlineContentinoldFile.readlines():newFile.write(lineContent)#关闭文件oldFile.close()newFile.close()7.importosimportsyssys.setrecursionlimit(1000)#setthemaximumdepthas1500file_path=input('请输入待查找的目录:')file_name=input('请输入待查找的文件:')deffile_find(file_path,file_name):ifos.path.isdir(file_path):#os.chdir(file_path) #进入当前路径ile_list=os.listdir(file_path)foreachinfile_list:temp_dir=file_path+os.sep+eachifos.path.isdir(temp_dir): #开始递归进入下一级子目录 temp=file_find(temp_dir,file_name) iftemp==True: returnTrueelifos.path.isfile(temp_dir)andeach==file_name:returnTrue#os.chdir('..') #没找到文件,退回上一个目录returnFalseelse:print('{}不是一个目录'.format(file_path))file_path='D:\PythonTest\book1'file_name='1.txt'print(file_find(file_path,file_name))第10章B 2.C 3.A 4.D 5.C(1)%matplotlibinlineimportmatplotlib.pyplotaspltimportseabornassnsiris=sns.load_dataset("iris")sns.set(style="ticks")fig,axes=plt.subplots(1,2,figsize=(20,5))sns.swarmplot(x='petal_length',y="petal_width",ax=axes[0],data=iris,hue="species")sns.swarmplot(x='sepal_length',y="sepal_width",ax=axes[1],data=iris,hue="species")plt.show()(2)sns.lmplot("petal_length","petal_width",hue="species",markers=["x","o","s"],data=iris)plt.show()从回归图上可以看出这两个特征之间是线性相关的。第11章B、CDCCimportnumpyasnparr=np.random.rand(10,5)importnumpyasnpmatr1=np.arange(1,5).reshape(2,2)matr2=np.arange(5,9).reshape(2,2)matr1*matr2v=np.array([1,-1,1]).reshape(3,1).TP=(v*v.T)/(v.T*v)Q=np.eye(3,3)-Pdir(np);np.arange?np.array([[1,-1,0]])生成一个(1,3)的矩阵,np.array([1,-1,0])生成一个向量。第12章A 2.D 3.D 4.A 5.B 6.B 7.(1)importseabornassnsmpg=sns.load_dataset("mpg")mpg.ndimmpg.size(2)mpg.describe()(3)mpg.groupby('cylinders')['mpg','horsepower'].agg("mean")mpg.groupby('origin')['mpg','horsepower'].agg("mean")第13章1.fromlxmlimportetreeimportrequestsresponse=requests.get("/")response.encoding="utf-8"selector=etree.HTML(response.text)news_text=selector.xpath('//*[@id="u1"]/a[1]/text()')[0]news_url=selector.xpath('//*[@id="u1"]/a[1]/@href')[0]2.创建scrapy项目scrapystartprojectsdWeatherSpider创建爬虫程序

scrapygenspidereveryCitySD使用浏览器打开网址/shaanxi在页面上单击鼠标右键,选择“查看网页源代码”,找到与“城市预报列表”对应的位置。选择并打开陕西省内任意城市的天气预报页面,以西安为例。选择“查看页面源代码”,找到与天气预报相对应的位置。修改items.py文件,定义要爬虫的内容importscrapyclassSdweatherspiderItem(scrapy.Item): city=scrapy.Field() weather=scrapy.Field()修改爬虫文件everyCitySD.py#-*-coding:utf-8-*-importscrapyfromreimportfindallimportrequestsfromsdWeatherSpider.itemsimportSdweatherspiderItemclassEverycitysdSpider(scrapy.Spider): allowed_domains=[''] name='everyCitySD' allowed_domains=[''] start_urls=['/'] url=r'/shaanxi' response=requests.get(url) response.encoding="utf-8" contents=response.text pattern='<atitle=".*?"href="(.+?)"target="_blank">.+?</a>' forurlinfindall(pattern,contents): #获取地市级预报的网页地址 start_urls.append(url) defparse(self,response): item=SdweatherspiderItem() city=response.xpath('//div[@class="crumbsfl"]//a[2]//text()').extract()[0] item['city']=city selector=response.xpath('//ul[@class="tclearfix"]')[0] weather='' forliinselector.xpath('./li'): date=li.xpath('./h1//text()').extract()[0] cloud=li.xpath('./p[@title]//text()').extract()[0] high=li.xpath('./p[@class="tem"]//span//text()').extract()[0] low=li.xpath('./p[@class="tem"]//i//text()').extract()[0] wind=li.xpath('./p[@class="win"]//em//span[1]/@title').extract()[0] wind=wind+li.xpath('./p[@class="win"]//i//text()').extract()[0] weather=weather+date+':'+cloud+','+high+'/'+low+','+wind+'\n' item['weather']=weather return[item]修改pipelines.py文件,把爬取的数据写入文件weather.csvimportcsvclassSdweatherspiderPipeline(object): defprocess_item(self,item,spider): withopen('weather.csv','a',encoding='

温馨提示

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

评论

0/150

提交评论