版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
課后練習(xí)第一章語法基礎(chǔ)1.在安裝Anaconda時,要注意什么?解答:安裝時盡可能地選擇與自己機器相匹配的軟件版本,安裝時不要安裝在含有中文的路徑下,會出現(xiàn)一些無法預(yù)計的錯誤。2.請輸出100除以3得到的商和余數(shù),并求出商的余數(shù)次方的值。解答:>>>s,m=divmod(100,3)>>>print("100除以3的商是%d,余數(shù)是%d"%(s,m))100除以3的商是33,余數(shù)是1>>>print(s**m)333.在print()里面將“明月幾時有”和“把酒問青天”兩句分兩行輸入,但是在輸出時顯示在一行。解答:>>>print("明月幾時有,\把酒問青天")明月幾時有,把酒問青天4.請將“Lifeisshort,Ineedpython.”連起來輸出100次。解答:>>>print("Lifeisshort,Ineedpython."*100)5.請說出運算法“=”“==”“+=”的含義。解答:=:表示賦值,將等號右邊的值賦值給左邊的變量,如a=1,即讓a的值等于1;==:表示判斷,判斷雙等號左右兩邊的值是否相等,返回的是布爾值True或False;+=:表示加法賦值操作,即自身加左側(cè)的操作數(shù),如k+=1等價于k=k+1。第二章數(shù)據(jù)類型1.已知:a=250,b=‘250’,請闡述a和b所引用的對象的區(qū)別。解答:>>>a,b=250,'250'>>>type(a)<class'int'>>>>type(b)<class'str'>250是整數(shù)類型的對象,’250’是字符串類型的對象。2.將字符串“map”的字符順序倒轉(zhuǎn)為“pam”。解答:>>>a="map">>>a[::-1]'pam'或>>>b=list(a)>>>b['m','a','p']>>>b.reverse()>>>b['p','a','m']>>>"".join(b)'pam'3.請用代碼將字符串’abcd’轉(zhuǎn)化為列表L,再將L還原為字符串’abcd’。解答:>>>s="abcd">>>L=list(s)>>>L['a','b','c','d']>>>"".join(L)'abcd'4.請?zhí)崛∽约荷矸葑C號碼中的出生年月日。解答:>>>sfz=>>>birthday=sfz[6:14]>>>birthday‘19760803’5.請統(tǒng)計字符串“Iamateacher,youareastudent.Lifeisshort,Ineedpython.”中字符a和e出現(xiàn)的次數(shù)。解答:>>>s="Iamateacher,youareastudent.Lifeisshort,Ineedpython.">>>s.count("a")5>>>s.count("e")76.張三和李四的電話號碼分別是6601和6602,請將他們的及其號碼做成一個字典類型的數(shù)據(jù),并將李四的號碼改成6603。解答:>>>d={"張三":6601,"李四":6602}>>>d["李四"]=6603>>>d{'張三':6601,'李四':6603}7.集合set有個功能就是過濾重復(fù)值。請輸出字符串“Lifeisshort,Ineedpython”中不同的字符,并做成列表。解答:>>>s="Lifeisshort,Ineedpython">>>set(s){'L','o','e','f','',',','h','d','p','s','I','t','r','i','n','y'}>>>list(_)#_下劃線表示上一次運行的結(jié)果['L','o','e','f','',',','h','d','p','s','I','t','r','i','n','y']第三章流程控制1.請設(shè)計一個程序統(tǒng)計字符串"Lifeisshort,Ineedpython"中各個字符出現(xiàn)的次數(shù)。解答:s="Lifeisshort,Ineedpython"d={}foriins:ifiind:d[i]+=1else:d[i]=1print(d)2.寫一段程序,實現(xiàn)如下功能:a)連續(xù)輸入幾個英文姓名,直到輸入字母q時退出輸入;b)按照字典順序?qū)⑺行彰判虿⒋蛴≥敵觥=獯穑簄ame_lst=[]whileTrue:name=input("PleaseinputanEnglishname(input'q'thenexit)")ifname=="q":breakelse:name_lst.append(name)name_lst.sort()print(name_lst)3.將字典{“name”:“python”,lang”:”english”}的鍵和值對換。解答:dd={}d={"name":"python","lang":"english"}forj,kind.items():dd[k]=jprint(dd)第四章函數(shù)和類1.編寫一個自定函數(shù),當給出一段英文文本時,函數(shù)會自動輸出文本中各單詞出現(xiàn)的頻率字典。解答:s="Thousandsofpeople?peoplehaveattendedarallyinthecapitalcity.calling\formoreaction。tobetakenonclimatechange.\Thedemonstration,towhichtookplaceonSunday?"defstr2dict_frequency(s):"""將輸入的英文文本中的單詞出現(xiàn)的頻率做成字典。s:是文本輸出是字典"""L=S.split()foriin[",",".","。","!","!","'","?",",","?"]:L=[x.strip(i)forxinL]d={}foriinL:ifiind.keys():d[i]+=1else:d[i]=1returnd2.編寫一個函數(shù),將兩個列表自動組合成字典。解答:defto_dictionary(keys,values):returndict(zip(keys,values))keys=["a","b","c"]values=[2,3,4]to_dictionary(keys,values)3.編寫一個函數(shù),將給定的列表中的元素進行分類,若是數(shù)字則放在列表num中,若是其他的字符則放在strs列表中。如[1,"a","2",3,"c"],輸出為num=[1,'2',3],strs=['a','c']。解答:defnum_str(L):"""本函數(shù)將數(shù)值和字符型數(shù)字與其他字符區(qū)分開。參數(shù)L是一個列表;返回兩個列表,一個是L中的所有數(shù)值和字符型數(shù)字,另一個是其它字符。"""num=[]strs=[]foriinL:ifstr(i).isdigit():num.append(i)else:strs.append(i)print("num:",num,"\n","strs:",strs)returnnum,strsL=[1,"c","2",3,"a"]num_str(L)3.編寫一個類,能識別輸入的身份證號碼對錯,該類還有輸出省份、出生年月、男女的方法屬性。解答:classid_prov():"""寫一個類識別輸入的身份證號碼對錯,其方法有輸出省份、出生年月、男女。"""#導(dǎo)入省份代碼prv={11:"北京",12:"天津",13:"河北",14:"山西",15:"內(nèi)蒙古",21:"遼寧",22:"吉林",23:"黑龍江",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"云南",54:"西藏",61:"陜西",62:"甘肅",63:"青海",64:"寧夏",65:"新疆",71:"臺灣",81:"香港",82:"澳門",91:"國外"}def__init__(self,w):self.w=wdefarear(self):p=self.prv[int(str(self.w)[:2])]print("你的身份證顯示出生地是:%s"%p)defbirthday(self):print("你的身份證顯示生日是:%s"%self.w[6:10])defsex(self):print("你的身份證顯示性別為:%s"%("男"ifint(self.w[-1])%2==1else"女"))a=id_prov()a.sex()a.birthday()a.arear()第五章Numpy1.隨機生成一個1~100之間的10*4的數(shù)組。2.將數(shù)組中含有某個指定的數(shù)n從數(shù)據(jù)行中找出來,并寫成自定義函數(shù)rand_df_num(n)。解答:defrand_dataframe_num(n):importnumpyasnps=np.random.randint(1,100,size=(10,4))ss=np.where(s==n)print(s)ifss[0].size<1:print("產(chǎn)生的隨機數(shù)組中沒有%s。"%n)else:print("產(chǎn)生的隨機數(shù)組中%s在行號為%s的行。"%(n,ss[0]))returnsum(ss[0])rand_dataframe_num(5)第六章Pandas1.讀取Excel文件i_nuc.xlsx中Sheet3數(shù)據(jù),并對數(shù)據(jù)做描述性統(tǒng)計分析。2.成績表中有多個Sheet,要求把Sheet3中的數(shù)字改成對應(yīng)的成績檔次,優(yōu)、良、中、差四擋,其中:100分為“優(yōu)”,80-99分為“良”,60-79分為“中”,60分以下為“差”。成績中如果有漢字的,需要保留漢字。例如:“缺考”、“作弊”等。解答:importpandasaspddf_dict=pd.read_excel(r'd:\OneDrive\出版\2023人大出版社\i_nuc.xlsx',sheet_name=None,dtype='string')#讀取excelsh3=df_dict['Sheet3']#讀取excel中的Sheet3sh3.describe()#100分為“優(yōu)”,80-99分為“良”,60-79分為“中”,60分以下為“差”ty=pd.to_numeric(sh3.體育,errors='coerce')ty_=[]foriinty:try:i=float(i)i=i*10ifi==100:ty_.append("優(yōu)")elifi>=80:ty_.append("良")elifi>=60:ty_.append("中")else:ty_.append("差")except:ty_.append(i)print(ty_)i__=[]foriin['英語','軍訓(xùn)','數(shù)分','高代','解幾']:print(i)ty=pd.to_numeric(sh3[i],errors='coerce')i_=[]foriinty:try:i=float(i)i=i*10ifi==100:i_.append("優(yōu)")elifi>=80:i_.append("良")elifi>=60:i_.append("中")else:i_.append("差")except:i_.append(i)print(i_)i__.append(i_)i__.insert(1,ty_)colum=['英語','體育','軍訓(xùn)','數(shù)分','高代','解幾']j=0foriincolum:sh2[i]=i__[j]j+=1sh3也可以采用以下正則方法。importpandasaspddf_dict=pd.read_excel(r'd:\python\i_nuc.xlsx',sheet_name=None,dtype='string')#讀取excelsh1=df_dict['Sheet1']#讀取excel中的Sheet1sh3=df_dict['Sheet3']sh7=df_dict['Sheet7']sh1.replace(regex={r'[1-5]\d\b':"差",r'[67]\d\b':"中",r'[89]\d\b':'良','100':'優(yōu)',r"\d\b":"差"},inplace=True)sh3.replace(regex={r'[1-5]\d\b':"差",r'[67]\d\b':"中",r'[89]\d\b':'良','100':'優(yōu)',r"\d\b":"差"},inplace=True)sh7.replace(regex={r'[1-5]\d\b':"差",r'[67]\d\b':"中",r'[89]\d\b':'良','100':'優(yōu)',r"\d\b":"差"},inplace=True)第七章數(shù)據(jù)處理與分析1.現(xiàn)有excel文件含有兩個表,分別放在sheet1和sheet2中,表格內(nèi)容如下。表一:成績表學(xué)號 C# 線代 Python16010203 78 88 9616010210 87 58 8316010205 84 65 8216010213 86 72 6716010215 67 76 8516010208 76 43 6916010209 56 68 9216010204 89 缺考 8616010211 81 81 7516010212 73 77 6916010206 65 80 8416010214 90 73 9116010207 91 64 86表二:信息表姓名 學(xué)號 手機號碼張三 16010203 16699995521李四 16010204 16699995522王五 16010205 16699995523趙六 16010206 16699995524鄭七 16010207 16699995525錢八 16010208 16699995526張千 16010209 16699995527趙六 16010210 16699995528李矛 16010211 16699995529張白 16010212 16699995510白九 16010213 16699995511冀二 16010214 16699995512余一 16010215 16699995513現(xiàn)請幫班主任做如下工作:1) 給成績表加上姓名列;2) 給成績表加上字段“總分”列,并求出總分;3) 增加列字段“等級”,標注每人“總分”的“優(yōu)、良、中、及格、差”(270≤優(yōu),240≤良,210≤中,及格≤180,差≤180);4) 計算各門課程的平均成績以及標準差。解答:importpandasaspd#讀取表一中的數(shù)據(jù)為df1,表二中的數(shù)據(jù)為df2df1=pd.read_excel(r'c:\Users\yubg\sizhang.xlsx',sheetname='Sheet1')df2=pd.read_excel(r'c:\Users\yubg\sizhang.xlsx',sheetname='Sheet2')#問題1:按照學(xué)號對應(yīng)合并表一表二數(shù)據(jù)保存為datadata=pd.merge(df1,df2,left_on='學(xué)號',right_on='學(xué)號')#將data中的“手機號碼”列刪除,data1數(shù)據(jù)即為我們的第一問答案data1=data.drop('手機號碼',axis=1)#統(tǒng)計總成績,由于數(shù)據(jù)中有缺考,所以要先將“缺考”替換為0##先找到“缺考”所在的位置。結(jié)果顯示在index=7,并在“線代”這一列中foriinlist(df1.columns):s=df1[df1[i].isin(['缺考'])]#找出“缺考”所在的位置(行和列)print(s)#為了保持原數(shù)據(jù)不受破壞,我們拷貝一份數(shù)據(jù)為df。此處必須要“硬”拷貝,否則df和df1同時被修改了,如:df=df1[:]就不行。df=data1.copy()#定位到“缺考”位置,并賦值為0df.at[7,'線代']=0#查看df中的“缺考”是否替換成了數(shù)字0。如果不替換,也可以把缺考所在的行刪除:df.drop(7)print(df)#問題2:在修改后的數(shù)據(jù)df中添加“總分”列,并計算出總成績df['總分']=(df['C#']+df['線代']+df['Python']).astype(int)#問題3:增加列字段“等級”把“總分”按照“優(yōu)、良、中、及格、差”(270≤優(yōu),240≤良,210≤中,及格≤180,差≤180)分類bins=[0,180,210,240,270,301]labels=["差","及格","中","良","優(yōu)"]df['類別']=pd.cut(df['總分'],bins,labels=labels)#問題4:計算各門課程的平均成績以及標準差;col=['C#','線代','Python']foriincol:m=df[i].mean()s=df[i].std()print(i,":mean",m,';std:',s)第八章數(shù)據(jù)可視化1.根據(jù)第七章的練習(xí)數(shù)據(jù)結(jié)果,做"總分"成績分布圖,縱坐標表示成績,橫坐標表示學(xué)號或者姓名,畫出總分的均分橫線,讓每位同學(xué)的總分圓點分布在均分線上下,以便于觀察每位同學(xué)的成績離開均分的距離。解答:#為了便于圖中顯示中文importmatplotlibimportmatplotlib.pyplotaspltfont={'family':'SimHei'}matplotlib.rc('font',**font)#畫圖plt.plot(range(len(list(df['總分']))),df['總分'],'o')plt.xlabel('姓名')plt.xticks(df.index+1/2,df['姓名'],rotation=45)plt.ylabel('總分')plt.plot(range(len(list(df['總分']))),[df['總分'].mean()foriinrange(len(list(df['總分'])))],'-')#plt.grid(True)plt.show()第九章正則表達式與格式化輸出1.請編寫一段代碼,在給定的文本中識別出電話號碼和Email,要求使用re模塊來處理。解答:importre#定義一個字符串text="我的電話號碼是123-456-7890,郵箱是example@。"#使用正則表達式匹配電話號碼phone_pattern=pile(r'\d{3}-\d{3}-\d{4}')phone=re.findall(phone_pattern,text)print(phone)#使用正則表達式匹配郵箱地址email_pattern=pile(r'[\w\.-]+@[\w\.-]+\.\w+')email=re.findall(email_pattern,text)print(email)2.編寫一個程序,要求用戶輸入他們的姓名、年齡和身高,將這些信息格式化為一個格式化的字符串,其中姓名、年齡和身高之間用逗號分隔,并且每個信息之間用制表符分隔。當身高輸入的不是數(shù)字時,需要提醒并且重新輸入,直到輸入的是數(shù)字為止。年齡這里要計算虛歲,所以在輸入的年齡數(shù)字上需要加1??紤]到年齡有可能輸入的不是數(shù)字,所以加1時可能會報錯,編寫代碼時請使用try語句。解答:#獲取用戶輸入name=input("請輸入您的姓名:")height=input("請輸入您的身高(cm):")whilenotheight.isdigit():height=input("請再次輸入您的身高(cm):")try:age=int(input("請輸入您的年齡:"))+1except:age=input("請重新輸入您的年齡:")whilenotage.isdigit():age=input("請再次輸入您的年齡:")age=int(age)+1#使用format()函數(shù)進行字符串格式化formatted_string="{:<15}\t{:<5}\t{:<10}".format(name,age,height)else:#使用format()函數(shù)進行字符串格式化formatted_string="{:<15}\t{:<5}\t{:<10}".format(name,age,height)#輸出格式化后的字符串print(formatted_string)第十章綜合應(yīng)用
常用的70個數(shù)據(jù)分析網(wǎng)址數(shù)據(jù)分析常用網(wǎng)站字典,一共70個,可視化、詞頻詞云、PPT模板等等面面俱到【數(shù)據(jù)可視化工具】百度ECharts /Cytoscape /圖表秀 /數(shù)據(jù)觀 /微博足跡可視化 /weibova/weibogeo_footprint/index.htmlBDP個人版 /home.html魔鏡 /圖表秀 文圖 https://www.wentu.io百度圖說 infogr.am https://infogr.am/Infographic visually https://visual.lyPiktochart slides 聲享 AntV /index.html【詞頻分析工具、詞云】Rost /downinfo/54638.html圖悅 /語義分析系統(tǒng) /nlpir/Tagul /騰訊文智 /semantic
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年特許經(jīng)營合同標的及經(jīng)營范圍
- 2024年租賃代理及居間服務(wù)合同
- 2024年版煙臺房產(chǎn)銷售合同
- 2024年生物制藥專利技術(shù)轉(zhuǎn)讓與生產(chǎn)許可合同
- 施工現(xiàn)場應(yīng)急預(yù)案及措施
- 通風(fēng)機安裝施工方案及技術(shù)措施
- 施工員工作計劃
- 政府公開招標合同范本
- 證券投資基金基金合同書
- 餐飲業(yè)消防安全施工方案
- 駕駛員資格申請表
- Module 6 Unit1 Can I have some sweets (說課稿)外研版(三起)英語四年級上冊
- 主要負責人重大隱患帶隊檢查表
- 《建筑施工模板安全技術(shù)規(guī)范》(JGJ 162-2008)
- 菜品作業(yè)指導(dǎo)書-06
- 小學(xué)勞動教育調(diào)查報告
- 電動叉車控制系統(tǒng)詳解帶電路圖
- JGJ-16--民用建筑電氣設(shè)計規(guī)范
- 義務(wù)教育數(shù)學(xué)課程標準(2022年版)
- 倉央嘉措詩全集
- 海洛斯操作手冊(說明書)
評論
0/150
提交評論