版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Python開發(fā)基礎(chǔ)試題甲答案總NUMPAGES9頁第9頁試題甲答案總NUMPAGES6頁第1頁試題B考試科目:python開發(fā)基礎(chǔ)試題編號:乙適用對象:軟件專業(yè)、計算機(jī)專業(yè)使用學(xué)期:2022—2023—2課程編號:02213113共5道大題總分100分共10頁一、選擇題(每小題1分,共15小題15分)12345678910ADBCADDBBB1112131415DBBCD二、判斷題(每小題1,共15小題15分)12345678910√√×√√×√××√12345√√√√×三、填空題(每空1分,共7題10分)1.’n’,’.q’,'nc.ude.urhqq.www'2.關(guān)鍵字參數(shù)3.dict(zip(keys,values))4.字典5.696.a(chǎn),b7.['0','1','2','3']四、編程題(每小題10分,共4小題40分)1.(因python版本不同,設(shè)計思路不同,答案不唯一,根據(jù)內(nèi)容酌情給分,比如注釋2分,讀取文件2分,性別餅狀圖可視化2分,人數(shù)柱狀圖可視化2分,題目詞云2分)importreimportjiebafrompyechartsimportWordCloudfrompyechartsimportPie,Barimportxlrd#1.讀取csv文件,把性別信息讀取出來defOpenFile(filename):data=xlrd.open_workbook(filename,'r',encoding_override='utf-8')table=data.sheets()[0]rows=table.nrowsreturnrows,tabledefgetSex(filename):lstsex=[]rows,table=OpenFile(filename)foriinrange(rows):ifi==0:#跳過第一行continuelstsex.append(table.row_values(i)[8])returnlstsex#2.性別pyechart可視化defVisualSexpyechart(lstsex):sex=dict()#2.1提取好友性別信息,從1開始,因?yàn)榈?個是自己forfinlstsex[0:]:iff=='男':sex["男"]=sex.get("男",0)+1eliff=='女':sex["女"]=sex.get("女",0)+1total=len(lstsex[0:])attr=['161男性','161女性']value=[sex["男"],sex["女"]]pie=Pie("161男女比例",'161總?cè)藬?shù):%d'%total,title_pos='center',width=1200)pie.add("",attr,value,radius=[30,75],center=[50,50],is_label_show=True,is_more_utils=True,is_legend_show=True,legend_top='bottom')pie.render('./男女比例.html')#3.老師指導(dǎo)人數(shù)可視化defgetTeacher(filename):str=[]rows,table=OpenFile(filename)foriinrange(rows):ifi==0:#跳過第一行continuestr.append(table.row_values(i)[5])returnstrdefVisualTeacherpyechart(filename):str=getTeacher(filename)duDict,liangDict,zhangDict,jinDict=dict(),dict(),dict(),dict()#3.1提取老師信息forfinstr[0:]:iff=="杜曉昕":duDict["杜曉昕"]=duDict.get("杜曉昕",0)+1iff=="梁偉":liangDict["梁偉"]=liangDict.get("梁偉",0)+1iff=="張劍飛":zhangDict["張劍飛"]=zhangDict.get("張劍飛",0)+1iff=="金濤":jinDict["金濤"]=jinDict.get("金濤",0)+1attr=['學(xué)生']bar=Bar("老師所帶學(xué)生人數(shù)比例",title_pos='center')bar.add("杜曉昕",attr,[duDict["杜曉昕"]],is_label_show=True,is_more_utils=True,is_legend_show=True,legend_top='bottom')bar.add("梁偉",attr,[liangDict["梁偉"]],is_label_show=True,is_more_utils=True,is_legend_show=True,legend_top='bottom')bar.add("張劍飛",attr,[zhangDict["張劍飛"]],is_label_show=True,is_more_utils=True,is_legend_show=True,legend_top='bottom')bar.add("金濤",attr,[jinDict["金濤"]],is_label_show=True,is_more_utils=True,is_legend_show=True,legend_top='bottom')bar.render('./老師所帶學(xué)生人數(shù)比例柱狀圖.html')#4.題目詞云可視化defgetTitle(filename):str=[]rows,table=OpenFile(filename)foriinrange(rows):ifi==0:#跳過第一行continuestr.append(table.row_values(i)[4])returnstrdefgetInfo(filename):lstat=getTitle(filename)file=open('./畢業(yè)設(shè)計題目.txt','a',encoding='utf-8')forldinlstat:signature=ld.strip().replace("emoji","").replace("span","").replace("class","")rec=pile("lf\d+\w*|[<>/=]")signature=rec.sub("",signature)ifsignature!="":file.write(signature+"\n")defcreate_word_cloud(filename):#讀取文件內(nèi)容text=open("{}.txt".format(filename),encoding='utf-8').read()#jieba分詞wordlist=jieba.lcut(text,cut_all=True)counts={}#通過鍵值對的形式儲存其出現(xiàn)的次數(shù)forwordinwordlist:iflen(word)==1:continueelse:counts[word]=counts.get(word,0)+1#遍歷所有的詞語,每出現(xiàn)一次其對應(yīng)的值加一name=list(counts.keys())value=list(counts.values())wordcloud=WordCloud()wordcloud.add("",name,value)wordcloud.render('./畢業(yè)設(shè)計題目.html')#5.執(zhí)行主程序,得到所有好友性別VisualSexpyechart(getSex("./2020屆畢業(yè)設(shè)計.xlsx"))VisualTeacherpyechart("./2020屆畢業(yè)設(shè)計.xlsx")getInfo("./2020屆畢業(yè)設(shè)計.xlsx")create_word_cloud('./畢業(yè)設(shè)計題目')2.(根據(jù)內(nèi)容酌情給分,比如注釋3分,init函數(shù)2分,其他函數(shù)5分)#玩家飛機(jī)類classPlayer(pygame.sprite.Sprite):def__init__(self,plane_img,init_pos):pygame.sprite.Sprite.__init__(self)self.image=plane_img#用來存儲玩家飛機(jī)圖片的列表self.rect=pygame.Rect(0,0,100,120)self.rect.topleft=init_posself.img_index=0#玩家飛機(jī)圖片索引self.speed=8#初始化玩家飛機(jī)速度,這里是一個確定的值self.bullets=pygame.sprite.Group()#玩家飛機(jī)所發(fā)射的子彈的集合#向上移動,需要判斷邊界defmoveUp(self):ifself.rect.top<=0:self.rect.top=0else:self.rect.top-=self.speed#向下移動,需要判斷邊界defmoveDown(self):ifself.rect.top>=SCREEN_HEIGHT-self.rect.height:self.rect.top=SCREEN_HEIGHT-self.rect.heightelse:self.rect.top+=self.speed#向左移動,需要判斷邊界defmoveLeft(self):ifself.rect.left<=0:self.rect.left=0else:self.rect.left-=self.speed#向右移動,需要判斷邊界defmoveRight(self):ifself.rect.left>=SCREEN_WIDTH-self.rect.width:self.rect.left=SCREEN_WIDTH-self.rect.widthelse:self.rect.left+=self.speed#發(fā)射子彈,生成子彈實(shí)例,然后編為一組defshoot(self,bullet_img):bullet=Bullet(bullet_img,self.rect.midtop)self.bullets.add(bullet)3.(答案不唯一,酌情給分,比如注釋2分,爬取網(wǎng)頁、解析內(nèi)容、可視化內(nèi)容各2分,剩下的2分)importrequestsimportbs4frombs4importBeautifulSoup#爬取網(wǎng)頁內(nèi)容defgetHtmlText(url):r=requests.get(url)r.encoding=r.apparent_encodingreturnr.text#根據(jù)內(nèi)容分析并存儲到列表中defcunNeiRong(ls,html):soup=BeautifulSoup(html,"html.parser")t_list=list(soup.find('tbody').contents)fortrint_list:ifisinstance(tr,bs4.element.Tag):if(tr.find('td').string==u"東部"ortr.find('td').string==u"西部"):continuetds=tr('td')ls.append([tds[0].string,tds[1].string,tds[2].string,tds[3].string,tds[4].string,tds[12].string,tds[13].string])#把內(nèi)容以容易理解清晰的表現(xiàn)輸出出來defprintNeiRong(ls):print(u"東部排名")foriinrange(16):s=ls[i]print("%-5s%-8s%-5s%-5s"%(s[0],s[1],s[2],s[3]))ls=[]url="/standings"NBA=getHtmlText(url)cunNeiRong(ls,NBA)printNeiRong(ls)4.importjiebafromcollectionsimportCounterfromwordcloudimportWordCloudimportmatplotlib.pyplotasplt#0.載入自定義字典jieba.load_userdict("userdict.txt")#1.從txt文本中讀取三國演義到變量中withopen("三國演義.txt",'r',encoding="utf-8",errors="ignore")asf:str1=f.read()#2.對報告進(jìn)行分詞str2=jieba.cut(str1)#3.統(tǒng)計分詞詞頻data=dict(Counter(str2))data2=sorted(data.items(),key=lambdax:x[1],reverse=True)#4.把分詞結(jié)果保存到文件中withopen("result.txt",'w',encoding="utf-8")asf:f.write(data2[:10])cut_text="".join(str2)#5.畫詞云color_mask=imread("te.jpg")#讀取背景圖片,繪制詞云cloud=WordCloud(#設(shè)置字體,不指定就會出現(xiàn)亂碼,文件名不支持中文font_path="fzmw.ttf",#設(shè)置背景色,默認(rèn)為黑,可根據(jù)需要自定義為顏色background_color='black',#詞云形狀,mask=color_mask,#允許最大詞匯max_words=400,#最大號字體,如果不指定則為圖像高度max_font_size=100,#畫布寬度和高度,如果設(shè)置了msak則不會生效width=600,height=400,margin=2,#詞語水平擺放的頻率,默認(rèn)為0.9.即豎直擺放的頻率為0.1prefer_horizontal=0.8)wc=cloud.generate_from_frequencies(txt)#產(chǎn)生詞云wc.to_file("weibo_cloud.jpg")#保存圖片#顯示詞云圖片plt.imshow(wc)#不顯示坐標(biāo)軸plt.axis('off')#繪制詞云image_colors=ImageColorGenerator(color_mask)plt.show()四、綜合題(每小題20分,共1小題20分)1.(答案不唯一,根據(jù)內(nèi)容酌情給分,例如KNN10分,其他機(jī)器學(xué)習(xí)算法10分,人工智能需要學(xué)習(xí)的知識10分)AKNN介紹KNN的全稱是KNearestNeighbors,意思是K個最近的鄰居,從這個名字我們就能看出一些KNN算法的蛛絲馬跡了。K個最近鄰居,毫無疑問,K的取值肯定是至關(guān)重要的。那么最近的鄰居又是怎么回事呢?其實(shí)啊,KNN的原理就是當(dāng)預(yù)測一個新的值x的時候,根據(jù)它距離最近的K個點(diǎn)是什么類別來判斷x屬于哪個類別。KNN是一種非參的,惰性的算法模型。非參的意思并不是說這個算法不需要參數(shù),而是意味著這個模型不會對數(shù)據(jù)做出任何的假設(shè),與之相對的是線性回歸(我們總會假設(shè)線性回歸是一條直線)。也就是說KNN建立的模型結(jié)構(gòu)是根據(jù)數(shù)據(jù)來決定的,這也比較符合現(xiàn)實(shí)的情況,畢竟在現(xiàn)實(shí)中的情況往往與理論上的假設(shè)是不相符的。惰性又是什么意思呢?同樣是分類算法,邏輯回歸需要先對數(shù)據(jù)進(jìn)行大量訓(xùn)練(tranning),最后才會得到一個算法模型。而KNN算法卻不需要,它沒有明確的訓(xùn)練數(shù)據(jù)的過程,或者說這個過程很快。KNN算法的優(yōu)勢和劣勢了解KNN算法的優(yōu)勢和劣勢,可以幫助我們在選擇學(xué)習(xí)算法的時候做出更加明智的決定。那我們就來看看KNN算法都有哪些優(yōu)勢以及其缺陷所在!KNN算法優(yōu)點(diǎn)簡單易用,相比其他算法,KNN算是比較簡潔明了的算法。即使沒有很高的數(shù)學(xué)基礎(chǔ)也能搞清楚它的原理。模型訓(xùn)練時間快,上面說到KNN算法是惰性的,這里也就不再過多講述。預(yù)測效果好。對異常值不敏感KNN算法缺點(diǎn)對內(nèi)存要求較高,因?yàn)樵撍惴ù鎯α怂杏?xùn)練數(shù)據(jù)預(yù)測階段可能很慢對不相關(guān)的功能和數(shù)據(jù)規(guī)模敏感B其他機(jī)器學(xué)習(xí)算法:樸素貝葉斯分類(Naive
Bayesian
classification):對于給出的待分類項(xiàng),求解此項(xiàng)出現(xiàn)的條件下各個類別出現(xiàn)的概率,哪個最大,就認(rèn)為此待分類屬于哪個類別。貝葉斯公式為:p(A|B)=
p(B|A)*p(A/p(B),其中P(A|B)表示后驗(yàn)概率,P(B|A)是似然值,P(A)是類別的先驗(yàn)概率,P(B)代表預(yù)測器的先驗(yàn)概率。優(yōu)點(diǎn):在數(shù)據(jù)較少的情況下仍然有效,可以處理多類別問題。缺點(diǎn):對輸入數(shù)據(jù)的準(zhǔn)備方式較為敏感。應(yīng)用場景:文本分類、人臉識別、欺詐檢測。決策樹算法:利用了概率論的原理,并且利用一種樹形圖作為分析工具。其基本原理是用決策點(diǎn)代表決策問題,用方案分枝代表可供選擇的方案,用概率分枝代表方案可能出現(xiàn)的各種結(jié)果,經(jīng)過對各種方案在各種結(jié)果條件下?lián)p益值的計算比較,為決策者提供決策依據(jù)決策樹分析法是常用的風(fēng)險分析決策方法。該方法是一種用樹形圖來描述各方案在未來收益的計算。比較以及選擇的方法,其決策是以期望值為標(biāo)準(zhǔn)的。人們對未來可能會遇到好幾種不同的情況。每種情況均有出現(xiàn)的可能,人們現(xiàn)無法確知,但是可以根據(jù)以前的資料來推斷各種自然狀態(tài)出現(xiàn)的概率。在這樣的條件下,人們計算的各種方案在未來的經(jīng)濟(jì)效果只能是考慮到各種自然狀態(tài)出現(xiàn)的概率的期望值,與未來的實(shí)際收益不會完全相等?;貧w算法:是試圖采用對誤差的衡量來探索變量之間的關(guān)系的一類算法?;貧w算法是統(tǒng)計機(jī)器學(xué)習(xí)的利器。在機(jī)器學(xué)習(xí)領(lǐng)域,人們說起回歸,有時候是指一類問題,有時候是指一類算法,這一點(diǎn)常常會使初學(xué)者有所困惑。常見的回歸算法包括:最小二乘法(OrdinaryLeastSquare),邏輯回歸(LogisticRegression),逐步式回歸(StepwiseRegression),多元自適應(yīng)回歸樣條(MultivariateAdaptiveRegressionSplines)以及本地散點(diǎn)平滑估計(LocallyEstimatedScatterplotSmoothing)。基于核的算法基于核的算法中最著名的莫過于支持向量機(jī)(SVM)了?;诤说乃惴ò演斎霐?shù)據(jù)映射到一個高階的向量空間,在這些高階向量空間里,有些分類或者回歸問題能夠更容易的解決。常見的基于核的算法包括:支持向量機(jī)(SupportVectorMachine,SVM),徑向基函數(shù)(RadialBasisFunction,RBF),以及線性判別分析(LinearDiscriminateAnalysis,LDA)等。聚類算法聚類,就像回歸一樣,有時候人們描述的是一類問題,有時候描述的是一類算法。聚類算法通常按照中心點(diǎn)或者分層的方式對輸入數(shù)據(jù)進(jìn)行歸并。所以的聚類算法都試圖找到數(shù)據(jù)的內(nèi)在結(jié)構(gòu),以便按照最大的共同點(diǎn)將數(shù)據(jù)進(jìn)行歸類。常見的聚類算法包括k-Means算法以及期望最大化算法(ExpectationMaximization,EM)。C人工智能需要掌握的知識:計算機(jī)科學(xué)基礎(chǔ)和編程。對機(jī)器學(xué)習(xí)工程師而言,計算機(jī)科學(xué)基礎(chǔ)的重要性包括數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)堆棧、隊(duì)列、多位數(shù)組、樹形以及圖像等等)、算法(搜索、分類、優(yōu)化、動態(tài)編程等)、科計算性與復(fù)雜性(P對NP、NP完全問題、大O符號以及近似算法等)和計算機(jī)架構(gòu)(存儲、緩存、帶寬、死鎖和分布式處理等等)。概率論和數(shù)理統(tǒng)計。概率的形式表征(條件概率、貝葉斯法則、可能性、獨(dú)立性等)和從其中衍生出的技術(shù)(貝葉斯網(wǎng)、馬爾科夫決策過程、隱藏式馬可夫模型等)是機(jī)器學(xué)習(xí)算法的核心,這些理論可以用來處理現(xiàn)實(shí)世界中存在的不確定性問題。和這個領(lǐng)域密切相關(guān)的還有統(tǒng)計學(xué),這個學(xué)科提供了很多種衡量指標(biāo)(平均值、中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師信息技術(shù)應(yīng)用能力提升工程2.0研修心得
- 三進(jìn)兩聯(lián)一交友工作計劃
- 三年級下學(xué)期語文學(xué)習(xí)質(zhì)量水平測試卷
- 高校畢業(yè)生職業(yè)規(guī)劃教學(xué)方案
- 概率論與競賽問題解析匯編
- 教師教學(xué)技能提升訓(xùn)練課程
- 電工基礎(chǔ)操作技能考核題庫
- 小學(xué)低年級拼音學(xué)習(xí)練習(xí)設(shè)計方案
- 小學(xué)英語口語教學(xué)活動設(shè)計及評價
- 工業(yè)機(jī)器人安全操作規(guī)范解說
- GA/T 2187-2024法庭科學(xué)整體分離痕跡檢驗(yàn)規(guī)范
- 施工現(xiàn)場臨時用電:配電箱一級二級三級定義及管理規(guī)范
- 汽車電子控制技術(shù)課件
- 2024年度高速公路機(jī)電設(shè)備維護(hù)合同:某機(jī)電公司負(fù)責(zé)某段高速公路的機(jī)電設(shè)備維護(hù)2篇
- 《城鎮(zhèn)液化石油氣加臭技術(shù)規(guī)程》
- 2024-2025學(xué)年上學(xué)期南京初中語文九年級期末試卷
- 新高考數(shù)學(xué)之圓錐曲線綜合講義第26講外接圓問題(原卷版+解析)
- 中藥湯劑煎煮技術(shù)規(guī)范-公示稿
- 新版出口報關(guān)單模板
- 藥學(xué)導(dǎo)論緒論-課件
- 14K118 空調(diào)通風(fēng)管道的加固
評論
0/150
提交評論