




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、在此處健入實驗報告課程名稱:Python編程基礎(chǔ)與應用實驗學期:2019年至2020年第1學期實驗時間:2020年4月28日專 業(yè):數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)班 級:學 號:姓 名: 指導教師:實踐一文件讀寫與異常綜合練習實踐:文件讀寫與異常綜合練習實驗目的.熟練掌握文件的讀寫與異常處理的方法2實驗內(nèi)容及步驟.分析問題.編寫代碼.運行程序.結(jié)果展示1.2.3程序運行過程、方法和運行結(jié)果.創(chuàng)建文件data, txt,共100000行,每行存放一個1100之間的整數(shù)。 分析:隨機生成100000個整數(shù),存放到data, txt文件中的每一行 import randomfilename = ,rzuoye
2、wenjiandata. txt”with open (filename, w) as file:for i in range (10000):file, write(str(random. randint(l, 100)+HnM)結(jié)果:在此處健入 , data.py 目 data.txt X* pyth。誨習工程 zuoye wenjian data.txt TOC o 1-5 h z 998949999088999148999287999360999432999598999675999760999886999972100001710001.編寫一個程序,提示用戶輸入其名字,用戶作出響應后,
3、將其名字累加寫入 到文件guest, txt中,同時打印guest, txt文件記錄的名字(guest, txt記錄每 次運行程序所寫的名字),當輸入時,輸入名字程序退出。分析:while True:name = input(“請輸入你的名字(按“n”退出程序):)if name = n:print(“程序結(jié)束”)breakelse:filename = zuoye/wenjian/guest.txtwith open(filename?encoding=,UTF-8N) as file:file.write(name+n)with open(filename? r, encoding=,UT
4、F-8,) as files:for line in files:print(line)結(jié)果:1/ data.py 目 guest.txt X pytho誨習工程 zuoye wenjian 目 guest.txtpppdddccc請輸入你的名字(按“n”退出程序):luyPPP ddd ccc3.生成一個大文件ips.txt,要求1200行,每行隨機為172.25. 254.0/24段的 ip;讀取ips. txt文件統(tǒng)計這個文件中ip出現(xiàn)頻率排1的ip;思路:.文件的寫操作. sorted函數(shù)如何對字典進行排filename = Hzuoye/wenjian/ips. txtMwith o
5、pen (filename, w”, encoding=UTF-8) as file:for i in range(1200):file, write(172. 25. 254. +str(random, randint(0, 255) + n)with open (filename, r, encoding=UTF-8) as files: p diet = for line in files:if line in p diet:p dietline += 1else:p dietline = 1sort_ip = sorted(p diet.values(), reverse=True)
6、for ip in pdict:if p_dictipl = sort_ip|01: print(ip, pdictip)else:continue結(jié)果:同 data.py ips.txtX. python習工程 zuoye wenjian 目 ips.txt11895119078119161192811936119411195261196511197301198172.25.25
7、4.1191199212001712014.在當前目錄新建目錄img,里面包含100個文件,100個文件名各不相同 (X4G5. png),將當前img目錄所有以.png結(jié)尾的后綴名改為.jpg。思路:首先編寫OS的生成目錄和文件模塊,其次編寫random函數(shù)和string模塊的 應用結(jié)合,最后編寫OS模塊的修改后綴。def gen_code(len=4):隨機生成4位驗證碼li = random.sample(string.ascii_letters+string.digits? len)拼接為字符串return H.join(li)def c
8、reate_files():隨機生成100個驗證碼li = gen_code() for i in range(100)創(chuàng)建目錄os-rnkdirCimg11)#生成100個文件for i in li:風ith openCimg/1 + i + n .png? a+) as fp:passcreate_files()def modify_suffix(dirnameold_suffix new_suffix):ai ii ii:param dirname:要操作的目錄:param old_suffix:之前的后綴名:param new_suffix:新的后綴名:return:ii ii ii#
9、找出以png結(jié)尾的文件名pngfile = filter(lambda filename: filename.endswith( old_suffix) os .listdir(dirname)#分離文件名和后綴basefiles = os.path.splitext(filename)0 for filename in pngfile#文件重命名for filename in basefiles:oldname = os.path.join(dirname? filename + old_suffix)newname = os.path.join(dirname? filename + ne
10、w_suffix)os rename(oldname, newname)print(%s 重命名為%$ 成功% (oldnamenewname)modify_suffix(Mimg11 ?.png) . jpg)結(jié)果:v / img ICzLjpg 1rxy jP9 2AhKjpg 2DXHjpg 2IBM.jpg 3OqRjpg 3yFi-jpg 3Yqk.jpg 4gtTjpg 05zRjpg5.使用多個文件練習:分別在當前目錄中手動創(chuàng)建4個文本文件,名字分別命 名為:畢業(yè)的日子.txt,最平凡處最美麗.txt,花開如笑.txt。分別讀取每一個 文本文件,統(tǒng)計文件中的句子數(shù)量。使用異常模塊
11、來處理讀取過程中的異常。for filename in Hzuoye/wenjian/ 畢 業(yè) 的日子.txtzuoye/wenjian/ 花開如 笑.txt:zuoye/v/enjian/最平凡處最美麗.txt1:with open(filename r) as file:count = 0comment = file.read()for i in comment:2 X 4ii ”-5:ii I ii4ii Q iit i = o or i =! or i =!count += 1prin七(filename14: +共有%d 句。11 % count)結(jié)果:C: Usersluyuehu
12、aDesktoppythonpython 練習工程D: /Download_D/ s/luyuehua/Desktop/python/python練習 工程/zuoye/wenjian/data.py 畢業(yè)的日子.txt共有9句?;ㄩ_如笑共有5句。最平凡處最美麗.txt共有8句。1.2. 4實驗中遇到的問題及分析、解決過程問題標題(如果有,請?zhí)顚憳祟},沒有則刪除這小節(jié),寫“無”).問題描述正文。.問題分析正文。.解決方法正文。在此處健入 實踐一 python標準庫和GUI綜合練習1.3實踐:python標準庫和GUI練習實驗目的.熟練掌握python標準庫中常用的庫函數(shù),理解它們的基本原理,會
13、運用它們的常用 功能。.熟練運用python的thinkter包來構(gòu)建GUI界面,掌握它的基本組件并學會運用它們。1.3. 2實驗內(nèi)容及步驟.分析問題.編寫代碼.運行程序.結(jié)果展不1.3. 3程序運行過程、方法和運行結(jié)果1.使用tkinter來編寫一個計算器小程序,實現(xiàn)+、二*、等基本功能。思路:.考慮用類來包裹整個計算器,用類的屬性存儲界面對象、數(shù)據(jù)與運算符等。.考慮使用eval ()函數(shù)來執(zhí)行一個字符串表達式,并返回表達式的值。import tkinter as tk#先有整體框架,輸入計算框,各種按鍵。class App:def _init_(self? master):#基本界面 se
14、lf.master = master#輸入組件self.initWidgets()#表達式在此處健入self.hi = Nonedef initWidgets(self):#創(chuàng)建一個輸入組件self.show = tk.Label(relief=tk.SUNKEN width=23 bg=,white, anchor=tk.W)#對該輸入組件使用pack布局self.show.pack(side=tk.TOP pady=10)p = tk.Frame(self.master)p . pack(side=tk.TOP)#定義字符串的元組names = (I, “2、,3, “4、“5、“6”,,
15、7, ”8、9、O, .二*,/, 7I ,j=,3j)#遍歷元組 for i in range(len(names):#創(chuàng)建按鈕,放入frame中b = tk.Button(p? text二namesi) 風idth=5)b.grid(row=i/5column=i % 5)# b.pack(side=tk.LEFT, padx=0? pady=5)#為鼠標左鍵的單擊事件綁定事件處理方法b.bind( self.click)#為鼠標左鍵雙擊事件綁定事件處理方法if bftext11 = 31b.bind(H self.clean)#定義一個記錄輸入數(shù)字次數(shù)的變量 self.i = 0def
16、click(selfevent):#如果用戶單擊數(shù)字或點號if (event.widget,text, in (“0,“1、”2、,3 “4“,“5、“6、 7, 8, 9,#判斷self .i是否為。,0的話清空show【text】的值if self.i = 0:self.show,text,J = ,Hself. shovyf text11 = self. show text + event .widget ,textn self.i = self.i + 1 print(self.i)#如果用戶單擊了運算符elif (event .widget text in-二 il*l “”,|*|
17、 “/):self. show Mtext11 = self. show text + event .v;idget text elif (event .widget utext11 = = and self. show ,text is not N one):賦值給self.hiself .hi = self. show,text,調(diào)試時使用print(self.hi)使用eval ()函數(shù)計算結(jié)果self. show text11 = str(eval(self. hi)self.hi = Noneself.i = 0def clean(selfevent):#點擊恢復按鈕時,清空表達式,
18、計數(shù)器清空 self.hi = None self.showt-text = ,Hroot = tk.Tk()root. title (計算器”)App(root)root.mainloop()點擊二”后:2.使用python的tkinter編寫一個界面,例子如下:能夠通過xml標準庫讀寫xml文件:country, xml中指定國家的rank和year屬 性。country, xml結(jié)構(gòu)如下:country name=Panama”)672014213600思路:將解析xml文件的代碼封裝為類,注意界面的布局情況,可以使用Label 和Entry等界面組件的grid函數(shù)。import tki
19、nter as tkimport xml.etree.ElementTree as ET在此處健入 Iclass App:I H ii點擊get按鈕時根據(jù)用戶輸入的國家名判斷是否時xml文件里而存在的name,若是則返回行營的 rank 和 year 值點擊set按鈕時將用戶輸入的數(shù)據(jù)按原格式存入xml文件II II IIdef _init_(selfroot):#基本界面 self.root = root#所需組件self.zujian()def zujian(self):#用標簽label存放固定的數(shù)據(jù),用文本框entry存放可變數(shù)據(jù),并用grid固 定他們的位置# set和get用按鈕b
20、utton來創(chuàng)建,再用bind設(shè)置他們的響應機制#國家name,tk.Label(self.roottext=country:height=lJ width=10).grid(row=0 column=0)self.el = tk.StringVar()self.ell = tk.Entry(self.root width=50J textvariable=self.el)self.ell.grid(row=0? column=l)# ranktk. Label(self. roottext=rank:11, height=lJ width=10).grid(row=l column=0)se
21、lf.e2 = tk.IntVar()self.e22 = tk.Entry(self.root, width=50? textvariable=self.e2)self.e22.grid(row=l column=l)# yeartk.Label(self.roottext=year:, height=l? width=10).grid(row=2 column=0)self.e3 = tk.IntVar()self.e33 = tk.Entry(self.root width=50J textvariable=self.e3) self e33.grid(row=2 column=l) #
22、 getb = tk. Button (root text=,get,1 height=l? width=15)b,grid(row=3 column=0)在此處健入b . bind (Button T self .click) # setc = tk. Button (root text=,set height=l width=15)c grid(row=3, column=l)c. bind(11 self .clean)def click(selfevent):#點擊get按鈕的響應機制tree = ET.parse(zuoye/country.xml1) # 。:建 xml 樹rootl = tree, get root ()# 得到樹根for country in rootl. findall( 1 country* ) : # 循環(huán)迎坊子點 country#判斷name是否和用戶輸入的一致,若一致則輸出他們的rank和year的 值if country, get ( name* ) = self .ell.get() :# 廣點:展性name的值self.el.set(count ry.ge
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年生物可降解塑料項目建議書
- 二零二五年度借調(diào)人員職業(yè)發(fā)展與離職交接協(xié)議
- 信息技術(shù)助力農(nóng)村發(fā)展合作合同書
- 某業(yè)務(wù)模塊操作指南
- 三農(nóng)科技示范推廣項目實施方案
- 小鴨子游泳故事解讀
- 2025年磷酸氧鈦鉀晶體(KTP)合作協(xié)議書
- 中學生課外閱讀經(jīng)驗交流征文
- 小公主童話故事解讀征文
- 文化藝術(shù)品保護及版權(quán)授權(quán)合同
- 2025年買賣雙方合同模板
- 最專業(yè)的企業(yè)介紹模板課件
- 2025國家電投集團資本控股限公司本部招聘11人高頻重點模擬試卷提升(共500題附帶答案詳解)
- 2025年湖南中醫(yī)藥高等??茖W校高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025新人教版英語七年級下單詞英譯漢默寫表(小學部分)
- 《聯(lián)合國教科文:學生人工智能能力框架》-中文版
- 2023年部編人教版六年級道德與法治下冊全冊課件【完整版】
- 第1課 古代亞非(教學課件)-【中職專用】《世界歷史》同步課堂(同課異構(gòu))(高教版2023?基礎(chǔ)模塊)
- 煙草栽培(二級)鑒定理論考試復習題庫-下(多選、判斷題匯總)
- 2008 年全國高校俄語專業(yè)四級水平測試試卷
- 需求供給與均衡價格PPT課件
評論
0/150
提交評論