![Python程序設(shè)計(jì)實(shí)例教程第2版董付國課后參考答案_第1頁](http://file4.renrendoc.com/view/a818db0fd7dd21cf0c1ea78c25de9ebf/a818db0fd7dd21cf0c1ea78c25de9ebf1.gif)
![Python程序設(shè)計(jì)實(shí)例教程第2版董付國課后參考答案_第2頁](http://file4.renrendoc.com/view/a818db0fd7dd21cf0c1ea78c25de9ebf/a818db0fd7dd21cf0c1ea78c25de9ebf2.gif)
![Python程序設(shè)計(jì)實(shí)例教程第2版董付國課后參考答案_第3頁](http://file4.renrendoc.com/view/a818db0fd7dd21cf0c1ea78c25de9ebf/a818db0fd7dd21cf0c1ea78c25de9ebf3.gif)
![Python程序設(shè)計(jì)實(shí)例教程第2版董付國課后參考答案_第4頁](http://file4.renrendoc.com/view/a818db0fd7dd21cf0c1ea78c25de9ebf/a818db0fd7dd21cf0c1ea78c25de9ebf4.gif)
![Python程序設(shè)計(jì)實(shí)例教程第2版董付國課后參考答案_第5頁](http://file4.renrendoc.com/view/a818db0fd7dd21cf0c1ea78c25de9ebf/a818db0fd7dd21cf0c1ea78c25de9ebf5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Pytho程序設(shè)計(jì)實(shí)例教程第2版習(xí)題答案項(xiàng)目1一、選擇題1、ABCD 2、ACD 3、ABCD 4、ABC 5、D 6、A項(xiàng)目2一、填空題1、//2、|3、-4、&5、A<B6、1:2:37、len()8、len()9、'1234'10、-511、112、False13、2.014、'123123123'15、'34'16、False17、618、319、320、(3,0)21、'c'22、[1,2,3]二、判斷題1、錯(cuò)2、錯(cuò)3、錯(cuò)4、錯(cuò)三、簡(jiǎn)答題1、不可以。集合中的元素不允許重復(fù),Python不支持集合與整數(shù)的乘法運(yùn)算。2、不能。zip對(duì)象中的元素只能使用一次。3、False。實(shí)數(shù)運(yùn)算有誤差。4、age,name1,姓名項(xiàng)目3一、填空題1、[6,7,8,9]2、[0,0]3、[1,2,3,2]4、None5、{1,2}6、'd'7、False8、[1,2,3,1,2,3,1,2,3]9、210、311、False12、False13、{1,2,3}二、判斷題1、錯(cuò)2、對(duì)3、錯(cuò)三、編程題1、fromrandomimportsamplen=int(input('請(qǐng)輸入一個(gè)正整數(shù):'))data=sample(range(1,5*n+1),k=n)print(data)data=[numfornumindataifnum%2==0]print(data)2、fromrandomimportchoicesdata=choices(range(1,50),k=20)print(data)data[:10]=sorted(data[:10])data[10:]=sorted(data[10:],reverse=True)print(data)3、方法一:data=eval(input('輸入一個(gè)包含若干整數(shù)的列表:'))data.reverse()print(data)方法二:data=eval(input('請(qǐng)輸入包含若干整數(shù)的列表:'))print(data[::-1])4、print(sum([2**iforiinrange(64)]))項(xiàng)目4一、填空題1、for循環(huán),while循環(huán)2、break,continue二、判斷題1、錯(cuò)2、對(duì)3、錯(cuò)4、錯(cuò)5、錯(cuò)三、編程題1、方法一:n=int(input('請(qǐng)輸入一個(gè)正整數(shù):'))data=list(range(2,n+1))foriinrange(len(data)):data[i+1:]=[numfornumindata[i+1:]ifnum%data[i]!=0]print(data)方法二:n=int(input('請(qǐng)輸入一個(gè)正整數(shù):'))lst=list(range(2,n))#最大整數(shù)的平方根m=int(n**0.5)forindex,valueinenumerate(lst):#如果當(dāng)前數(shù)字已大于最大整數(shù)的平方根,結(jié)束判斷ifvalue>m:break#對(duì)該位置之后的元素進(jìn)行過濾lst[index+1:]=filter(lambdax:x%value!=0,lst[index+1:])print(lst)2、fornuminrange(999,0,-1):ifnum%5==0andnum%7==0:print(num)break3、方法一:data=eval(input('請(qǐng)輸入包含若干數(shù)字的列表:'))fornumindata:ifdata.count(num)==1:print(num)方法二:fromcollectionsimportCounterdata=[]whileTrue:num=float(input('輸入一個(gè)數(shù)字,0表示結(jié)束輸入:'))ifnum==0:breakdata.append(num)result=[numfornum,cinCounter(data).items()ifc==1]print(result)4、方法一:data=eval(input('請(qǐng)輸入包含若干數(shù)字的列表:'))result=[]fornumindata:ifnumnotinresult:result.append(num)print(result)方法二:data=eval(input('請(qǐng)輸入包含若干數(shù)字的列表:'))result=list(set(data))print(result)方法三:data=set()whileTrue:num=float(input('輸入一個(gè)數(shù)字,0表示結(jié)束輸入:'))ifnum==0:breakdata.add(num)print(data)5、fromrandomimportchoice,randrangen=5maxStep=10#n個(gè)洞口,有狐貍為1,沒有狐貍為0positions=[0]*n#狐貍的隨機(jī)初始位置oldPos=randrange(0,n)positions[oldPos]=1#最多允許抓maxStep次whilemaxStep>0:maxStep-=1#這個(gè)循環(huán)保證用戶輸入是有效洞口編號(hào)whileTrue:try:x=input('你今天打算打開哪個(gè)洞口呀?(0-{0}):'.format(n-1))#如果輸入的不是數(shù)字,就會(huì)跳轉(zhuǎn)到except部分x=int(x)#如果輸入的洞口有效,結(jié)束這個(gè)循環(huán),否則就繼續(xù)輸入assert0<=x<n,'要按套路來啊,再給你一次機(jī)會(huì)。'breakexcept:#如果輸入的不是數(shù)字,就執(zhí)行這里的代碼print('要按套路來啊,再給你一次機(jī)會(huì)。')ifpositions[x]==1:print('成功,我抓到小狐貍啦。')breakelse:print('今天又沒抓到。')#如果這次沒抓到,狐貍就跳到隔壁洞口ifoldPos==n-1:newPos=oldPos-1elifoldPos==0:newPos=oldPos+1else:newPos=oldPos+choice((-1,1))positions[oldPos],positions[newPos]=0,1oldPos=newPoselse:print('放棄吧,你這樣亂試是沒有希望的。')6、方法一:fromrandomimportchoicesdata=choices(range(1,51),k=20)print(data)length=len(data)forpositioninrange(1,length):item=data[position]j=position-1whilej>=0anddata[j]>item:data[j+1]=data[j]j=j-1data[j+1]=itemprint(data)方法二:fromrandomimportchoicesdata=choices(range(1,51),k=20)print(data)foriinrange(1,len(data)):num=data[i]forjinrange(i-1,-1,-1):ifdata[j]>num:data[j+1]=data[j]else:data[j+1]=numbreakelse:data[0]=numprint(data)7、方法一:fromrandomimportchoicesdata=choices(range(1,51),k=20)print(data)for_inrange(5):data.append(data.pop(0))print(data)方法二:fromrandomimportchoicesdata=choices(range(1,51),k=20)print(data)print(data[5:]+data[:5])8、fromrandomimportchoicesdata=choices(range(50),k=20)print(data)#負(fù)無窮大diff=-float('inf')forindex,valueinenumerate(data[:-1]):forvindata[index+1:]:t=v-valueift>diff:result=(value,v)diff=tprint(result[1]-result[0])9、a=1b=2c=4foriinrange(12):c,b,a=a+b+c,c,bprint(c)10、111、127512、不能,程序會(huì)陷入死循環(huán)。因?yàn)榧现械脑夭辉试S重復(fù),在1到10之間無法生成20各不重復(fù)的整數(shù)。13、方法一:num=int(input('輸入一個(gè)整數(shù):'))flag=0ifnum>0:flag=1elifnum<0:flag=-1print(flag)方法二:n=int(input('請(qǐng)輸入一個(gè)整數(shù):'))ifn==0:print(0)else:print(n//abs(n))項(xiàng)目5一、填空題1、def2、不需要3、None二、判斷題1、錯(cuò)2、對(duì)3、錯(cuò)4、錯(cuò)5、錯(cuò)6、錯(cuò)7、錯(cuò)三、編程題1、frommathimportpidefget_area(r):ifisinstance(r,(int,float))andr>0:returnpi*r*relse:return'dataerror'print(get_area(6))2、defgcd(m,n):whilem!=0:r=n%mn,m=m,rreturnnprint(gcd(36,20))3、方法一:deffunc(a,n):if(isinstance(a,int)and0<a<10andisinstance(n,int)andn>0):result,t=0,0for_inrange(n):t=t*10+aresult=result+treturnresultelse:return'dataerror'print(func(3,3))方法二:deffunc(a,n):a=str(a)returnsum(map(lambdai:eval(a*i),range(1,n+1)))4、defcheck(s):returns==s[::-1]print(check('civic'))print(check('city'))5、defmyCycle(iterable):whileTrue:foriteminiterable:yielditemc=myCycle('abcd')foriinrange(20):print(next(c))6、defmyCount(start,step):whileTrue:yieldstartstart=start+stepc=myCount(3,2)foriinrange(20):print(next(c))7、defmyReversed(lst):foriteminlst[::-1]:yielditemlst=list(range(5))r=myReversed(lst)print(next(r))print(next(r))8、defmyAll(iterable):foriteminiterable:ifnotbool(item):returnFalsereturnTrueprint(myAll([1,2,3]))print(myAll((0,'a')))9、defmyAny(iterable):foriteminiterable:ifbool(item):returnTruereturnFalseprint(myAny([1,2,3]))print(myAny((0,'a')))print(myAny({0,0j,''}))10、131615項(xiàng)目6面向?qū)ο蟪绦蛟O(shè)計(jì)一、填空題1、class2、私有3、能4、能5、len()6、+7、**二、判斷題1、對(duì)2、對(duì)3、錯(cuò)4、錯(cuò)三、編程題1、classVector3:#構(gòu)造方法,初始化,定義向量坐標(biāo)def__init__(self,x,y,z):self.__x=xself.__y=yself.__z=z#與兩一個(gè)向量相加,對(duì)應(yīng)分量相加,返回新向量defadd(self,anotherPoint):x=self.__x+anotherPoint.__xy=self.__y+anotherPoint.__yz=self.__z+anotherPoint.__zreturnVector3(x,y,z)#減去另一個(gè)向量,對(duì)應(yīng)分量相減,返回新向量defsub(self,anotherPoint):x=self.__x-anotherPoint.__xy=self.__y-anotherPoint.__yz=self.__z-anotherPoint.__zreturnVector3(x,y,z)#向量與一個(gè)數(shù)字相乘,各分量乘以同一個(gè)數(shù)字,返回新向量defmul(self,n):x,y,z=self.__x*n,self.__y*n,self.__z*nreturnVector3(x,y,z)#向量除以一個(gè)數(shù)字,各分量除以同一個(gè)數(shù)字,返回新向量defdiv(self,n):x,y,z=self.__x/n,self.__y/n,self.__z/nreturnVector3(x,y,z)#查看向量各分量值defshow(self):print('X:{0},Y:{1},Z:{2}'.format(self.__x,self.__y,self.__z))#查看向量長度,所有分量平方和的平方根@propertydeflength(self):return(self.__x**2+self.__y**2+self.__z**2)**0.5#內(nèi)積計(jì)算defdot(self,anotherVector):assertisinstance(anotherVector,Vector3),'類型不正確'return(self.__x*anotherVector.__x+self.__y*anotherVector.__y+self.__z*anotherVector.__z)#用法演示v=Vector3(3,4,5)v1=v.mul(3)v1.show()v2=v1.add(v)v2.show()print(v2.length)print(v1.dot(v2))2、classMyArray:def__init__(self,iterable):assertisinstance(iterable,(list,tuple,range)),'數(shù)據(jù)類型不對(duì)'self.__values=list(iterable)def__str__(self):returnstr(self.__values)def__setitem__(self,index,value):self.__values[index]=valuea1=MyArray([1,2,3,4])a2=MyArray((5,6,7,8))a3=MyArray(range(10))a3[5]=50print(a1,a2,a3,sep='\n')3、classMyArray:def__init__(self,iterable):assertisinstance(iterable,(list,tuple,range)),'數(shù)據(jù)類型不對(duì)'self.__values=list(iterable)def__str__(self):returnstr(self.__values)def__getitem__(self,index):assertisinstance(index,(int,list)),'下標(biāo)必須為整數(shù)或包含整數(shù)的列表'ifisinstance(index,int):returnself.__values[index]foriteminindex:assertisinstance(item,int),'下標(biāo)必須為整數(shù)或包含整數(shù)的列表'return[self.__values[i]foriinindex]a1=MyArray([1,2,3,4])print(a1[3])print(a1[[0,3,1,1]])項(xiàng)目7使用字符串一、填空題1、142、223、244、185、-16、507、False8、119、210、'大花碗里扣個(gè)大花活蛤蟆'二、判斷題1、對(duì)2、對(duì)3、對(duì)4、對(duì)5、對(duì)6、對(duì)7、對(duì)8、對(duì)9、三、編程題1、方法一:deflongest(s):result=[]t=[]forchins:#遍歷字符串中所有字符if'0'<=ch<='9':#遇到數(shù)字,記錄到臨時(shí)變量t.append(ch)elift:result.append(''.join(t))#遇到非數(shù)字,把臨時(shí)的連續(xù)數(shù)字記下來t=[]ift:#考慮原字符串以數(shù)字結(jié)束的情況result.append(''.join(t))ifresult:returnmax(result,key=len)return'沒有數(shù)字子串's=input('請(qǐng)輸入任意內(nèi)容:')print(longest(s))方法二:deflongest(s):length=len(s)start=0span=(0,0)forposinrange(length):ifs[pos].isdigit()and(pos==0ornots[pos-1].isdigit()):start=poselif((nots[pos].isdigit())ands[pos-1].isdigit()andpos-start>span[1]-span[0]):span=(start,pos-1)#字符串以數(shù)字結(jié)束的情況ifs[pos].isdigit()andpos-start>=span[1]-span[0]:span=(start,pos)returns[span[0]:span[1]+1]2、方法一:defreverse(s):return''.join(reversed(s.split()))s=input('請(qǐng)輸入任意內(nèi)容:')print(reverse(s))方法二:defreverseSentence(s):return''.join(s.split()[::-1])3、方法一:deffunc(s):returnsorted(set(s),key=s.rindex)s=input('請(qǐng)輸入任意內(nèi)容:')print(func(s))方法二:deflastOccurrence(s):characters=[]forindex,chinenumerate(s):ifindex==s.rindex(ch):characters.append(ch)returncharacters項(xiàng)目8使用正則表達(dá)式一、填空題1、'111'2、'3'3、'3'4、15、46、6二、選擇題1、B2、A3、B4、B5、A6、B7、A8、A三、簡(jiǎn)答題1、1)把正則表達(dá)式變?yōu)榉秦澬哪J剑?)表示問號(hào)前面的字符或子模式出現(xiàn)0次或1次。2、1)在方括號(hào)內(nèi)以^開頭表示不匹配方括號(hào)內(nèi)后面的字符;2)在方括號(hào)外表示從字符串開始處或行首開始匹配。3、match()從字符串開始處匹配,search()可以匹配任意位置符合正則表達(dá)式的子串。四、編程題1、參考答案一:fromreimportfindall#假設(shè)下面是一個(gè)程序中的代碼,可以在學(xué)完項(xiàng)目9以后再改寫程序讀取程序文件中的代碼program='''deffunc(a,n):if(isinstance(a,int)and0<a<10andisinstance(n,int)andn>0):result,t=0,0for_inrange(n):t=t*10+aresult=result+treturnresultelse:return'dataerror'print(func(3,3))'''pattern=r'\bdef\s+?(\w+?)\('print(*findall(pattern,program),sep='\n')參考答案二:importrefileName=input('請(qǐng)輸入一個(gè)Python程序文件名:')withopen(fileName,encoding='utf8')asfp:forlineinfp:line=line.strip()ifline.startswith('def'):functionName=re.findall(r'\bdef\s+?(\w+?)\(',line)[0]print(functionName)2、importrefileName=input('請(qǐng)輸入一個(gè)Python程序文件名:')withopen(fileName,encoding='utf8')asfp:forlineinfp:line=line.strip()ifline.startswith('#'):continue#函數(shù)和方法中的形參functionParameters=re.findall(r'def\s+\w+\((.+?)\)',line)iffunctionParameters:print('函數(shù)參數(shù):')print(*re.split(r',\s+',functionParameters[0]))#普通變量ifline.count('=')==1:print('普通變量:')variables=re.findall(r'(.+?)=',line)print(*re.split(r',\s+',variables[0]))#for循環(huán)中的變量名forVariables=re.findall(r'for\s+(.+?)\s+in',line)ifforVariables:print('for循環(huán)中的變量:')print(*re.split(r',\s+',forVariables[0]))#if條件表達(dá)式中的變量名ifline.startswith('if'):ifVariables=re.findall(r'if\s+(.+?):',line)ififVariables:print('if條件表達(dá)式中的變量:')print(re.split(r'[=\s]+',ifVariables[0])[0])3、方法一:fromreimportsubsentence=input('請(qǐng)輸入一句英語:')result=sub(r'\B(\w+?)\B',lambdax:x.group(0).lower(),sentence)print(result)方法二:importredefcheck(sentence):returnre.sub(r'\b(\w)(\w+?)(\w)\b',lambdam:(m.group(1)+m.group(2).lower()+m.group(3)),sentence)print(check('aabcABCAbCd'))項(xiàng)目9讀寫文件內(nèi)容一、填空題1、文本文件,二進(jìn)制文件2、'rb'3、with4、python-docx5、openpyxl6、python-pptx二、判斷題1、錯(cuò)2、對(duì)3、對(duì)4、錯(cuò)5、錯(cuò)6、錯(cuò)7、對(duì)8、錯(cuò)9、錯(cuò)10、錯(cuò)11、對(duì)12、錯(cuò)三、編程題1、fromos.pathimportisfiletxtFiles=('file1.txt','file2.txt')withopen('result.txt','w')asfp:withopen(txtFiles[0])asfp1,open(txtFiles[1])asfp2:whileTrue:line1=fp1.readline()ifline1:fp.write(line1)else:flag=Falsebreakline2=fp2.readline()ifline2:fp.write(line2)else:flag=Truebreakfp3=fp1ifflagelsefp2forlineinfp3:fp.write(line)2、filename='merge.py'withopen(filename,'r')asfp:lines=fp.readlines()maxLength=len(max(lines,key=len))lines=[line.rstrip().ljust(maxLength)+'#'+str(index)+'\n'forindex,lineinenumerate(lines)]withopen(filename[:-3]+'_new.py','w')asfp:fp.writelines(lines)3、本題超綱,可以不做,做的話需要先安裝擴(kuò)展庫pywin32。importosimportos.pathimportwin32comimportwin32com.clienttotal=0forsubPathinos.listdir():subPath=os.path.join(os.getcwd(),subPath)ifsubPath.endswith(('.ppt','.pptx')):print(subPath)powerpoint=win32com.client.Dispatch('PowerPoint.Application')powerpoint.Visible=1ppt=powerpoint.Presentations.Open(subPath)win32com.client.gencache.EnsureDispatch('PowerPoint.Application')total+=ppt.Slides.Countpowerpoint.Quit()print(total)4、fromosimportlistdir,removefromos.pathimportexistsimportopenpyxl#結(jié)果文件名,如果已存在,先刪除result='result.xlsx'ifexists(result):remove(result)#創(chuàng)建空白結(jié)果文件,并添加表頭wbResult=openpyxl.Workbook()wsResult=wbResult.worksheets[0]wsResult.append(['學(xué)院','姓名','成績'])#遍歷當(dāng)前文件夾中所有xlsx文件,#把除表頭之外的內(nèi)容追加到結(jié)果文件中fns=(fnforfninlistdir()iffn.endswith('.xlsx'))forfninfns:wb=openpyxl.load_workbook(fn)ws=wb.worksheets[0]forindex,rowinenumerate(ws.rows):#跳過表頭ifindex==0:continuetemp=[]forcellinrow:try:temp.append(cell.value)except:temp.append(None)wsResult.append(temp)#保存結(jié)果文件wbResult.save(result)5、如果原文件為doc格式,可以先轉(zhuǎn)換為docx格式再執(zhí)行下面的程序。fromdocximportDocumentfromdocx.sharedimportRGBColordoc=Document('test.docx')fortableindoc.tables:forrowintable.rows:print(*map(lambdacell:cell.text,row.cells))項(xiàng)目10文件與文件夾操作一、填空題1、listdir()2、remove()3、startfile()4、isfile()5、isdir()6、exists()7、getsize()8、getmtime()9、join()10、basename()11、make_archive()二、編程題1、fromosimportlistdirfromos.pathimportisfile,isdir,join,basenamedefcheck(dstDir,fileName):dirs=[dstDir]whiledirs:current=dirs.pop(0)try:subpaths=listdir(current)except:continueforsubpathinsubpaths:ifsubpath.startswith('$'):continuesubpath=join(current,subpath)ifisfile(subpath)andbasename(subpath).lower()==fileName.lower():returnTrueelifisdir(subpath):dirs.append(subpath)returnFalseprint(check('d:\\','temp.txt'))2、方法一:fromosimportlistdirfromos.pathimportjoin,isfile,isdir,getctimefromtimeimportlocaltimedeflistDirWidthFirst(directory):dirs=[directory]whiledirs:current=dirs.pop(0)forsubPathinlistdir(current):path=join(current,subPath)ifisfile(path)andlocaltime(getctime(path))[:3]==(2017,10,26):print(path)elifisdir(path):dirs.append(path)listDirWidthFirst('d:\\')方法二:fromosimportlistdirfromdatetimeimportdatetimefromos.pathimportisfile,isdir,join,getctimedefcheck(dstDir):dirs=[dstDir]whiledirs:current=dirs.pop(0)try:subpaths=listdir(current)except:continueforsubpathinsubpaths:ifsubpath.startswith('$'):continuesubpath=join(current,subpath)ifisfile(subpath):ctime=datetime.fromtimestamp(getctime(subpath))ifctime==datetime(2017,10,26):print(str(ctime),':',subpath)elifisdir(subpath):dirs.append(subpath)returnFalsecheck('d:\\')3、importosimportfilecmpimportshutilimportsysdefusage():print('scrDiranddstDirmustbeexistingabsolutepathofcertaindirectory')print('Forexample:{0}c:\\olddirc:\\newdir'.format(sys.argv[0]))sys.exit(0)defautoBackup(scrDir,dstDir):if((notos.path.isdir(scrDir))or(notos.path.isdir(dstDir))or\(os.path.abspath(scrDir)!=scrDir)or(os.path.abspath(dstDir)!=dstDir)):usage()foriteminos.listdir(scrDir):scrItem=os.path.join(scrDir,item)dstItem=scrItem.replace(scrDir,dstDir)ifos.path.isdir(scrItem):ifnotos.path.exists(dstItem):os.makedirs(dstItem)print('makedirectory'+dstItem)autoBackup(scrItem,dstItem)elifos.path.isfile(scrItem):if((notos.path.exists(dstItem))\or(notfilecmp.cmp(scrItem,dstItem,shallow=False))):shutil.copyfile(scrItem,dstItem)print('file:'+scrItem+'==>'+dstItem)scrDir,dstDir=r'D:\workingDirectory',r'D:\backupDirectory'autoBackup(scrDir,dstDir)4、importosimportfilecmpimportshutilimportsysdefusage():print('scrDiranddstDirmustbeexistingabsolutepathofcertaindirectory')print('Forexample:{0}c:\\olddirc:\\newdir'.format(sys.argv[0]))sys.exit(0)defautoBackup(scrDir,dstDir):if((notos.path.isdir(scrDir))or(notos.path.isdir(dstDir))or\(os.path.abspath(scrDir)!=scrDir)or(os.path.abspath(dstDir)!=dstDir)):usage()foriteminos.listdir(scrDir):scrItem=os.path.join(scrDir,item)dstItem=scrItem.replace(scrDir,dstDir)ifos.path.isdir(scrItem):ifnotos.path.exists(dstItem):os.makedirs(dstItem)print('makedirectory'+dstItem)autoBackup(scrItem,dstItem)elifos.path.isfile(scrItem):if((notos.path.exists(dstItem))\or(notfilecmp.cmp(scrItem,dstItem,shallow=False))):shutil.copyfile(scrItem,dstItem)print('file:'+scrItem+'==>'+dstItem)scrDir=input('請(qǐng)輸入工作文件夾路徑:')dstDir=input('請(qǐng)輸入用來備份的文件夾路徑:')autoBackup(scrDir,dstDir)項(xiàng)目11網(wǎng)絡(luò)爬蟲入門與應(yīng)用一、填空題1、urlopen()2、urljoin()3、startproject4、crawl二、判斷題1、對(duì)2、對(duì)3、對(duì)4、對(duì)三、編程題1、importreimportosimportos.pathfromurllib.requestimporturlopendstDir='YuanShi'ifnotos.path.isdir(dstDir):os.mkdir(dstDir)startUrl=r'/cae/html/main/col48/column_48_1.html'withurlopen(startUrl)asfp:content=fp.read().decode()#提取并遍歷每位大牛鏈接pattern=r'<liclass="name_list"><ahref="(.+)"target="_blank">(.+)</a></li>'result=re.findall(pattern,content)foriteminresult:perUrl,name=itemprint(perUrl)name=os.path.join(dstDir,name)perUrl=r'/'+perUrltry:withurlopen(perUrl)asfp:content=fp.read().decode()except:print('skipped',perUrl)continue#抓取簡(jiǎn)介pattern=r'<p>(.+?)</p>'result=re.findall(pattern,content)ifresult:intro=re.sub('(<a.+</a>)|( )|( )','','\n'.join(result))withopen(name+'.txt','w',encoding='utf8')asfp:fp.write(intro)項(xiàng)目12使用NumPy實(shí)現(xiàn)數(shù)組與矩陣運(yùn)算一、填空題1、pipinstallnumpy2、33、154、305、556、747、matrix([[14]])8、(3,4)9、5510、2511、1512、74二、編程題importnumpyasnpa=np.array(eval(input('輸入線性方程組ax=b的a:')))b=np.array(eval(input('輸入線性方程組ax=b的b:')))print(np.linalg.solve(a,b))項(xiàng)目13使用Pandas分析與處理數(shù)據(jù)一、填空題1、by2、describe()3、nlargest()4、dropna()5、inplace6、groupby()7、diff()8、read_excel()9、read_csv()10、kind二、判斷題1、對(duì)2、對(duì)三、編程題1、importpandasaspdfromitertoolsimportcombinationsdf=pd.read_excel('電影導(dǎo)演演員.xlsx')#把“演員”列分隔為列表df.演員=df.演員.str.split(',')#獲取(演員,電影)的組合pairs=[]foriinrange(len(df)):filmName=df.at[i,'電影名稱']actors=df.at[i,'演員']foractorinactors:pairs.append((actor,filmName))#重新構(gòu)建DataFrame,有“演員”和“電影”兩列actors=[item[0]foriteminpairs]filmNames=[item[1]foriteminpairs]df=pd.DataFrame({'演員':actors,'電影':filmNames})#按“演員”分組,對(duì)“電影列的字符串使用逗號(hào)連接為長字符串df=df.groupby(by='演員',as_index=False).agg(','.join)#把“電影”列變?yōu)榧蟙f.電影=df.電影.str.split(',')df.電影=df.電影.map(set)#尋找參演電影集合交集中電影數(shù)量最多的兩個(gè)演員的索引index=max(combinations(df.index,2),key=lambdaitem:len(d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電子書閱讀器項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國獨(dú)立收線機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年機(jī)車空調(diào)電源整機(jī)測(cè)試儀項(xiàng)目可行性研究報(bào)告
- 2025年室內(nèi)型溫度傳感器/變送器項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國剛性防水干混砂漿行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年沖浪板項(xiàng)目可行性研究報(bào)告
- 2025年上嘴過濾瓶項(xiàng)目可行性研究報(bào)告
- 2025至2030年高光水性高耐磨上光油項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年金屬瓷牙項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年耐磨高錳鋼軋臼壁項(xiàng)目投資價(jià)值分析報(bào)告
- 2024建筑用輻射致冷涂料
- 2024版《糖尿病健康宣教》課件
- 2024年遼寧鐵道職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 社區(qū)工作者經(jīng)典備考題庫(必背300題)
- 廣東省緊密型縣域醫(yī)共體雙向轉(zhuǎn)診管理中心運(yùn)行指南
- PEP人教版小學(xué)英語單詞卡片四年級(jí)下卡片
- 新部編版六年級(jí)下冊(cè)道德與法治全冊(cè)教案(教學(xué)設(shè)計(jì))
- 小學(xué)英語六年級(jí)上冊(cè)Unit1-The-king’s-new-clothes-第1課時(shí)課件
- 教練技術(shù)一階段講義(共59頁)
- 精品課程建設(shè)驗(yàn)收自評(píng)報(bào)告
- 未成年人需辦銀行卡證明(模板)
評(píng)論
0/150
提交評(píng)論