版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
Python程序設(shè)計教程
(工作手冊式)情景三
優(yōu)化程序的性能任務(wù)mission1234函數(shù)異常處理面向?qū)ο蟪绦蛟O(shè)計包與庫5文件操作任務(wù)一函數(shù)一.函數(shù)的定義在實際開發(fā)中,如果想把一段功能獨立的代碼進行封裝,我們就可以在這段代碼的上方,先寫上def關(guān)鍵字(def這個關(guān)鍵字是英文單詞define的縮寫,它的中文含義就是定義),def之后先空格,然后再給你這段代碼取個名字;函數(shù)名的后邊緊跟的是一對小括號或者叫圓括號,圓括號的后面再緊跟一個重要的冒號。冒號后一定要換行縮進再定義函數(shù)體,函數(shù)體內(nèi)就是我們要封裝的函數(shù)功能代碼。我們編寫一個say_hello的函數(shù),如右圖所示。defsay_hello():print("Hello!")print("Howareyou!")print("Goodmorning!")二.函數(shù)調(diào)用函數(shù)的定義實現(xiàn)了函數(shù)的功能,函數(shù)定義好了,如果不用放在哪也就只是擺設(shè),怎么將其用起來,即函數(shù)調(diào)用。函數(shù)調(diào)用很簡單,通過函數(shù)名和它后邊那對圓括號,便可完成,后邊那對圓括號叫形參表。我們要調(diào)用say_hello函數(shù),直接使用函數(shù)名加形參表就可以了,如:say_hello()特別需要注意的是:函數(shù)定義了一定要調(diào)用才會工作,你不調(diào)用它是不會主動工作的。三.形參形參是指定義函數(shù)時,圓括號中的參數(shù),形參是用來接收實參的值的,它只能在函數(shù)內(nèi)部作為變量使用。在定義函數(shù)頭部時,圓括號中便可以列舉出需要用到的形參的名稱,多個形參之間用逗號分隔。例如,定義一個求兩數(shù)之和的函數(shù),代碼可以編寫為:這里的num1和num2就是用來表示加數(shù)與被加數(shù)的形參。所謂形參,從字面意思我們可以看出,它只是形式參數(shù),并沒有實際值,當(dāng)函數(shù)需要數(shù)據(jù)傳遞時,就需要在形參表設(shè)置形參,它的作用是等待別人傳遞數(shù)據(jù)給它。形參的作用有兩個:一是告訴外部把值傳到我這里來,二是在函數(shù)內(nèi)部當(dāng)作變量運算。def
sum(num1,num2):四.
實參實參是指調(diào)用函數(shù)時,圓括號中的參數(shù),實參用來存放數(shù)據(jù)并將數(shù)據(jù)傳遞給形參。剛才定義的求和的sum()函數(shù)調(diào)用時,如果是將12和5兩數(shù)求和,可以將被加數(shù)12和加數(shù)5的值寫進實參表,編寫為:實參的作用只有一個:把數(shù)據(jù)傳遞給形參。sum圓括號12逗號5,這里的12和5就是實參。調(diào)用語句就是直接使用已經(jīng)定義好的函數(shù)功能:將實參12傳遞給函數(shù)中的形參num1,實參5將傳遞給函數(shù)中的形參num2。sum(12,5)五.法變量的作用域變量的作用域就是變量在什么范圍內(nèi)起作用,一個變量在不同的位置,它的作用域也是不一樣的。定義在函數(shù)外部的變量稱為全局變量,全局變量的作用域是整個全局;局部變量是在函數(shù)的內(nèi)部定義,只能在其聲明的函數(shù)內(nèi)部使用。defadd():s=n1+n2returnsn1=1n2=2result=add()print('{}+{}={}'.format(n1,n2,result))deflocalvar():
n3=1returnlocalvar()print(n3)六.編寫函數(shù)求圓的面積首先定義一個求圓面積的函數(shù)defcircle(radius);再通過for循環(huán)控制運行3次,在for循環(huán)體中使用input函數(shù)輸入圓的半徑,接著調(diào)用circle(將用戶輸入的半徑傳遞給radius);再通過return
語句返回計算后圓的面積,最后使用print(接收return變量)輸出面積。defcircle1(radius):area=3.14*radius**2returnareaforiinrange(3):r=float(input("請輸入圓的半徑:"))s=circle1(r)print('圓的面積為:{:.3f}'.format(s))七.任務(wù)一小結(jié)通過本次任務(wù)的學(xué)習(xí)和實踐,使我們了解了函數(shù)的功能和特點,掌握了函數(shù)的定義和調(diào)用的方法,并且通過綜合實訓(xùn)的引導(dǎo),能夠熟練運用多種方法編寫函數(shù)來解決實際問題。如果需要編寫的程序非常復(fù)雜,可以將其分解為多個函數(shù),由團隊成員分工協(xié)作一同來完成;函數(shù)也需要合作,合作才能共贏。任務(wù)二面向?qū)ο蟪绦蛟O(shè)計一.面向?qū)ο蟪绦蛟O(shè)計1.對象的引入
對象(object)是一種數(shù)據(jù)抽象或數(shù)據(jù)結(jié)構(gòu)抽象,用來表示程序中需要處理或已處理的信息。Python從設(shè)計之初就是一門面向?qū)ο蟮恼Z言,它有一個重要的概念,即一切皆對象。數(shù)字、字符串、元組、列表、字典、函數(shù)、方法、類、模塊等等都是對象。將對象的特征用狀態(tài)和行為來表示,狀態(tài)就是靜態(tài)屬性,主要指對象包含的各種信息,如學(xué)號、姓名、性別、籍貫等;行為就是動態(tài)屬性,表示對象所具有的功能和操作,如學(xué)習(xí)、吃飯、體育鍛煉等。一.面向?qū)ο蟪绦蛟O(shè)計2.類的定義在Python的世界中也是同樣道理,要創(chuàng)建一個個的對象,就要先創(chuàng)建模具,也是先創(chuàng)建一個類。那如何定義類呢?使用關(guān)鍵字class來表示類,后面加空格再寫類名,類名后同樣需要緊跟一個重要的冒號,即class類名:,在定義類時,類名要遵循大駝峰命名法,比如定義一個汽車類,它的成員變量有:品牌、型號、顏色、價格;它的成員方法有:行駛。classCar:brand='長城'
type='H6''color='黑色'
price='120000'defdrive(self):print('Icanrun')一.面向?qū)ο蟪绦蛟O(shè)計3.對象的創(chuàng)建與使用汽車類創(chuàng)建完成以后,怎么通過汽車類來創(chuàng)建對象呢?這一步非常簡單,可以使用對象名=類名()來完成,此時我們要創(chuàng)建一個car1對象名,則直接通過car1=Car()來完成對象的創(chuàng)建,參考代碼如下:car1=Car() #創(chuàng)建car1對象car1.brand='長安' #訪問成員變量car1.type='CS75'
#調(diào)用成員方法car1.drive()二.封裝1.封裝的引入
封裝(Encapsulation)是對具體對象的一種抽象,即將某些部分隱藏起來,在程序外部看不到,其含義是其他程序無法調(diào)用。要了解封裝,離不開“私有化”,就是將類或者是函數(shù)中的某些屬性限制在某個區(qū)域之內(nèi),外部無法調(diào)用。在類中把某些屬性和方法隱藏起來(或者說定義成私有的),只在類的內(nèi)部使用、外部無法訪問,或者留下少量接口(函數(shù))供外部訪問。Python中私有化的方法也比較簡單,即在準(zhǔn)備私有化的屬性和方法名字前面加兩個下劃線(__)即可。二.封裝2.封裝練習(xí)
將學(xué)生類Student中成員變量年齡age和性別gender私有化;同時將成員方法study()封裝起來,參考代碼如右1所示。接下來,通過學(xué)生類Student創(chuàng)建一個學(xué)生對象jack,再使用對象jack來訪問學(xué)生類Student中的成員變量和成員方法,參考代碼如右2所示。classStudent:name='張三'
__age=18
__gender='男'
def__study(self):print('努力學(xué)習(xí)')
defeat(self):print('認(rèn)真吃飯')
defsleep(self):print('好好休息')jack=Student()print()print(jack.age)print(jack.gender)jack.study()jack.eat()jack.sleep()二.封裝2.封裝練習(xí)但是,隱藏并不是目的,定義了屬性和方法就是為了使用,我們可以在學(xué)生類中再定義兩個公共的方法,讓這兩個方法去訪問同類中的私有屬性和方法,這樣就可以間接讓學(xué)生類外的對象訪問私有屬性和方法了,參考代碼如下。classStudent:name='張三'
__age=18
__gender='男'
def__study(self):print('努力學(xué)習(xí)')
defeat(self):print('認(rèn)真吃飯')
defsleep(self):print('好好休息')
defgetattribute(self):returnself.__age,self.__genderdefgetmethod(self):returnself.__study()jack=Student()print()print(jack.getattribute())jack.getmethod()jack.eat()jack.sleep()三.繼承1.怎么繼承
繼承是指將一個具有廣泛意義的類定義為父類(又稱為基類或超類),新建的類可以繼承一個或者多個父類,新建的類稱為子類(派生類)。子類的創(chuàng)建語法格式如下。class子類名(父類名):
成員變量的定義(新增或修改)成員方法的定義(新增或修改)三.繼承2.單繼承創(chuàng)建一個動物類Animal,該類具有吃、喝、跑、睡4個方法,參考代碼如下。再創(chuàng)建一個貓類Cat,讓它繼承動物類,品種為貍花貓,并且新增一個捉老鼠的方法;再創(chuàng)建一個狗類Dog,讓它繼承動物類,品種為中華田園犬,并且新增一個看家護院的方法;參考代碼如下。classAnimal:defeat(self):print('吃',end='')defdrink(self):print('喝',end='')defrun(self):print('跑',end='')defsleep(self):print('睡')classCat(Animal):breed='貍花貓'
defwork(self):print('捉老鼠')classDog(Animal):breed='中華田園犬'
defwork(self):print('看家護院')四.多態(tài)python中,多態(tài)是指不同的子類對象調(diào)用相同的父類方法,產(chǎn)生不同的執(zhí)行結(jié)果。多態(tài)一般指一類事物多種形態(tài),同時一個類有多個子類,因而多態(tài)的概念依賴于繼承。實現(xiàn)多態(tài)的兩個前提:一是要有繼承(多態(tài)必須發(fā)生在父類和子類之間);二是子類必須重寫父類的方法?,F(xiàn)在我們繼續(xù)使用單繼承的案例來講解多態(tài)的知識點,首先定義一個Animal父類,在該類中寫一個who方法;再寫兩個子類Cat和Dog繼承Animal類,并且每個子類都重寫父類的who方法,輸出該子類動物的名字。classAnimal:
defwho(self):print('我是小動物')classCat(Animal):
defwho(self):print('我是貍花貓')
defwork(self):print('捉老鼠')classDog(Animal):
defwho(self):print('我是中華田園犬')
defwork(self):print('看家護院')a1=Animal()c1=Cat()d1=Dog()a1.who()c1.who()d1.who()五.任務(wù)二小結(jié)通過本次任務(wù)的學(xué)習(xí)和實踐,使我們了解了面向?qū)ο蟪绦蛟O(shè)計的特征和優(yōu)勢,掌握了類的定義、對象的創(chuàng)建和使用;同時能夠熟練完成封裝、繼承和多態(tài)的程序設(shè)計和編碼。封裝增加了代碼的安全性、繼承提高了代碼的可重用性、多態(tài)增強了代碼的靈活度和可擴展性。任務(wù)三
異常處理一.異常處理1.異常的概念當(dāng)我們在寫Python代碼的時候,或多或少都會遇到代碼錯誤或者異常的情況,那異常與錯誤有什么區(qū)別呢?異常是指不完整、不合法輸入,或者計算出現(xiàn)錯誤(但這時的語法和邏輯是正確的);錯誤是指代碼不符合解釋器或者編譯器語法要求。當(dāng)程序運行時,如果Python解釋器遇到一個錯誤,會停止程序的執(zhí)行并且提示一些錯誤信息,這就是異常。通常將程序停止執(zhí)行并且提示錯誤信息這個動作稱之為:拋出異常。在程序開發(fā)時,很難把所有的特殊情況都處理的面面俱到,通過異常捕獲可以針對突發(fā)事件做集中的處理,從而保證程序的穩(wěn)定性和健壯性。二.異常處理2.捕獲異常在程序開發(fā)中,如果對某些代碼的執(zhí)行不確定是否正確,可以增加try來捕獲異常。try:嘗試,下方編寫要嘗試的代碼,不確定是否能正常執(zhí)行的代碼;except:如果不是,下方編寫嘗試失敗的代碼。捕獲異常的語法格式如下:try:
嘗試執(zhí)行的代碼except:
出現(xiàn)錯誤的處理方法二.異常處理3.常見異常序號異常名稱描述1AttributeError對象沒有這個屬性2EOFError沒有內(nèi)建輸入,到達(dá)EOF標(biāo)記3IndexError序列中沒有該索引(index)4ImportError導(dǎo)入模塊/對象失敗
5IOError輸入/輸出操作失敗6KeyError映射中沒有該鍵7LookupError無效數(shù)據(jù)查詢的基類
8NameError未聲明/初始化對象(沒有屬性)9OSError操作系統(tǒng)錯誤10SyntaxErrorPython語法錯誤11TypeError對類型無效的操作12TabErrorTab和空格混用13ValueError傳入的參數(shù)無效14WindowsError系統(tǒng)調(diào)用失敗15UnicodeErrorUnicode相關(guān)的錯誤
16ZeroDivisionError除(或取模)零(所有數(shù)據(jù)類型)三.任務(wù)三小結(jié)通過本次任務(wù)的學(xué)習(xí)和實踐,使我們了解了異常處理的功能和特點,掌握了常見異常名稱和錯誤類型捕獲的方法,養(yǎng)成良好的編程習(xí)慣;并且通過綜合實訓(xùn)的引導(dǎo),能夠熟練捕獲異常以及出現(xiàn)錯誤后的處理方法。實際上這和我們做人做事的道理是一樣的,同學(xué)們要努力拓展知識的寬度和深度,面對同一個問題,多思考,多實踐,多改進,多總結(jié)。沒有做不到,只有想不到,這也是學(xué)無止境的道理。任務(wù)四
包與庫一.包與庫1.什么是包簡單來說,包(package)就是一個文件夾,每個包目錄中必須存在__init__.py文件,也就是裝著__init__.py文件的文件夾,該文件的內(nèi)容可以為空。包是一個分層次的文件目錄結(jié)構(gòu),是模塊和子包的集合體。2.
什么是庫
庫(library),是模塊和包的集合,分為標(biāo)準(zhǔn)庫、第三方庫和自定義庫;Python的標(biāo)準(zhǔn)庫也稱為Python內(nèi)置庫,是隨著Python安裝的時候默認(rèn)自帶的庫,常用標(biāo)準(zhǔn)庫如右表所示。常用的標(biāo)準(zhǔn)庫序號名稱功能描述1os操作系統(tǒng)管理2sys解釋器交互3shutil文件管理4math數(shù)學(xué)常數(shù)和數(shù)學(xué)函數(shù)5random隨機數(shù)6datetime日期和時間7time時間訪問和轉(zhuǎn)換8jsonJSON編碼和解碼9glob查找文件10urllibhttp訪問一.包與庫3.包的使用首先打開PyCharm,在當(dāng)前項目(D:\py)上單擊右鍵,選擇“New”,在彈出的子菜單中選擇創(chuàng)建“Pythonpackage”,輸入包名“cqcvc”后回車確定即可;緊接著鼠標(biāo)右鍵單擊該包名,創(chuàng)建三個py文件分別是__init__.py、div.py和leapyear.py。一.包與庫4.導(dǎo)入包(1)import包名[.模塊名[as別名]](2)from包名import模塊名[as別名](3)from包名.模塊名import成員名[as別名]二.標(biāo)準(zhǔn)庫在常用標(biāo)準(zhǔn)庫中有一個操作文件和文件夾的os庫,它提供通用的、基本的操作系統(tǒng)交互功能,主要有:系統(tǒng)相關(guān)變量和操作、文件和目錄相關(guān)操作、執(zhí)行命令和管理進程,使用print(dir(os))可以發(fā)現(xiàn),os標(biāo)準(zhǔn)庫包含了豐富的函數(shù)。os標(biāo)準(zhǔn)庫還包含了一個path子模塊,該子模塊主要提供了豐富的路徑操作方法,處理文件路徑及信息等操作。三.第三方庫1.
NumPy
NumPy是Python的一種開源的數(shù)值計算擴展,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用,可用來存儲和處理大型矩陣,比Python自身的嵌套列表結(jié)構(gòu)要高效。2.
matplotlib
matplotlib是一個python2D繪圖庫,利用它可以畫出許多高質(zhì)量的圖像,開發(fā)者僅需要幾行代碼,便可以生成直方圖,條形圖,餅圖,散點圖等。四.任務(wù)四小結(jié)通過本次任務(wù)的學(xué)習(xí)和實踐,使我們了解了包與庫的區(qū)別和特點,掌握了如何創(chuàng)建包和導(dǎo)入包的三種方法,并且通過綜合實訓(xùn)的引導(dǎo),能夠熟練運用標(biāo)準(zhǔn)庫大幅提高程序開發(fā)的效率;能夠安裝和使用第三方庫完成特定功能的實現(xiàn)。功能強大的第三方庫,可以讓開發(fā)者站在巨人的肩膀上工作,將重要工作由造輪子變成了找輪子,而一個好的輪子有以下特殊:開源、低耦合、有開發(fā)文檔、接口友好、社區(qū)相對活躍等。為了找到好輪子,需要同學(xué)們具備信息檢索能力、外文資料閱讀能力和代碼閱讀能力以及平時的經(jīng)驗積累。正所謂:“不積跬步無以至千里,不積小流無以成江?!?。任務(wù)五
文件操作一.文件的打開與關(guān)閉1.文件的打開打開文件使用open內(nèi)置函數(shù)來實現(xiàn),open底層調(diào)用的是操作系統(tǒng)的接口;打開文件可以使用open和withopen兩種方式來完成,具體格式如下。f1=open(文件名,讀寫模式,encoding='utf-8')withopen(文件名,讀寫模式,encoding='utf-8')asf2:序號讀寫模式描述1‘r’以只讀方式打開文件(默認(rèn)方式)2‘w’以只寫方式打開文件(打開時清空文件)3‘a(chǎn)’打開文件,在文件末尾添加數(shù)據(jù)4‘rb’以只讀方式打開二進制文件5‘wb’以只寫方式打開二進制文件6‘a(chǎn)b’以添加方式打開二進制文件7‘+’放在上面模式后,設(shè)置讀寫模式一.文件的打開與關(guān)閉2.文件的關(guān)閉文件使用完后,切記要使用close函數(shù)關(guān)閉已打開的文件。即使文件會在程序退出后自動關(guān)閉,但是考慮到數(shù)據(jù)的安全性,在每次使用完文件后,都要使用close函數(shù)關(guān)閉文件,否則一旦程序崩潰,很可能導(dǎo)致文件中的數(shù)據(jù)沒有保存。f1.close()二.讀文件和寫文件1.讀文件可以用read()、readline()和readlines()來讀取文件的內(nèi)容。(1)read():一次性讀取文件中的數(shù)據(jù),可選參數(shù)size,用于控制讀取文件的字節(jié)數(shù),如果省略表示一次性全部內(nèi)容。(2)readline()每次讀取文件的一行數(shù)據(jù),如果給定了size,有可能只返回一行的部分內(nèi)容,以字符串的形式返回,并在結(jié)尾會有一個換行符‘\n’。(3)readlines()一次讀取整個文件,并自動將文件內(nèi)容分析成一個行的列表。二.讀文件和寫文件2.寫文件向打開的文件寫入數(shù)據(jù)的函數(shù)有兩個,分別是:write()、writelines()。(1)write():該函數(shù)用來將文本字符串寫入已經(jīng)創(chuàng)建的文件中。(2)writelines():該函數(shù)把對象中的多個字符串一次性全部寫到文件中。需要注意的是,序列中的內(nèi)容也必須是字符串類型才可以。三.任務(wù)五小結(jié)通過本次任務(wù)的學(xué)習(xí)和實踐,使我們了解了編碼格式和文件讀寫模式,掌握了文件打開和關(guān)閉的方法;并且通過綜合實訓(xùn)的引導(dǎo),能夠根據(jù)實際需求熟練運用read()、readline()和readlines()來讀取文件,通過write()和writelines()來寫文件。最后通過強化訓(xùn)練將本次“文件操作”應(yīng)用和上一次“包與庫”的應(yīng)用聯(lián)系起來協(xié)同完成,起到了鞏固拓展、舉一反三的目的。Python程序設(shè)計教程
(工作手冊式)情景四
Python與辦公自動化任務(wù)mission123word自動化ppt自動化excel自動化任務(wù)一
word自動化一.新建和寫入word文檔1.新建word文檔
在python-docx中,一個word文檔用一個Document對象來表示,所以我們要新建一個word文檔,只需要實例化一個Document對象即可,參考代碼如下。fromdocximportDocument#第一步:創(chuàng)建一個文檔對象doc1doc1=Document()#第二步:對象調(diào)用save()保存文檔doc1.save('cqcvc.docx')print('創(chuàng)建文檔成功!')一.新建和寫入word文檔2.寫入word文檔
在編輯word文檔前,首先需要選中操作對象,所以把文檔標(biāo)題、段落信息等對象先寫入到文檔中,寫入文檔參考代碼如右側(cè)所示。fromdocximportDocument#讀取現(xiàn)有的文檔doc1=Document('cqcvc.docx')#添加文檔總標(biāo)題和段落doc1.add_heading('重慶城市職業(yè)學(xué)院簡介',level=0)doc1.add_paragraph('重慶城市職業(yè)學(xué)院是教育部備案,\重慶市人民政府舉辦,重慶市教委主管的全日制公辦高等院校。')#添加一級標(biāo)題和段落doc1.add_heading('辦學(xué)理念',level=1)doc1.add_paragraph('行大道啟大智鑄大匠通大悟')doc1.add_heading('校訓(xùn)',level=1)doc1.add_paragraph('求德求知求技求悟')doc1.add_heading('校風(fēng)',level=1)doc1.add_paragraph('堅卓勤勉自強奮進')doc1.add_heading('教風(fēng)',level=1)doc1.add_paragraph('德潤匠心善導(dǎo)業(yè)精')doc1.add_heading('學(xué)風(fēng)',level=1)doc1.add_paragraph('紅色匠心精益求精')#保存文檔doc1.save('cqcvc.docx')print('寫入文檔成功!')二.插入圖片和表格1.插入圖片
如果只是插入幾幅圖片、幾個表格當(dāng)然可以直接用應(yīng)用軟件來完成;但是如果要處理的圖片和表格數(shù)據(jù)巨大,有成長上萬張圖片和表格需要處理,此時首選編寫程序來快速、批量完成重復(fù)操作。fromdocximportDocumentfromdocx.sharedimportPtdoc1=Document()doc1.add_heading('文檔中插入圖片和表格',level=0)#插入圖片cqcvc.jpgdoc1.add_picture('D:\\yd\\cqcvc.jpg',Pt(435),Pt(230))print('文檔插入圖片成功!')……二.插入圖片和表格1.插入表格#插入3行3列的表格,'TableGrid'是表格邊框常用的樣式table=doc1.add_table(rows=3,cols=3,style='TableGrid')#定位第一個表格table=doc1.tables[0]table.add_row()#在表格最底部添加一行#標(biāo)題行單元格添加關(guān)鍵字hc=table.rows[0].cellshc[0].text='學(xué)號'hc[1].text='姓名'hc[2].text='年齡'row1=table.rows[1]row1.cells[0].text='2022001'row1.cells[1].text='張三'row1.cells[2].text='18'row2=table.rows[2]row2.cells[0].text='2022002'row2.cells[1].text='李四'row2.cells[2].text='19'row3=table.rows[3]row3.cells[0].text='2022003'row3.cells[1].text='王五'row3.cells[2].text='20'print('文檔插入表格成功!')doc1.save('insert_pic_table.docx')print('文檔保存成功!')fromdocximportDocumentfromdocx.sharedimportPtdoc1=Document()doc1.add_heading('文檔中插入圖片和表格',level=0)#插入圖片cqcvc.jpgdoc1.add_picture('D:\\yd\\cqcvc.jpg',Pt(435),Pt(230))print('文檔插入圖片成功!')三.讀取word文檔如果需要讀取word文檔中的內(nèi)容,參考代碼如下,運行后輸出的結(jié)果如下所示。fromdocximportDocument#打開文檔document=Document('style.docx')#讀取標(biāo)題、段落、列表內(nèi)容ps=[paragraph.textforparagraphindocument.paragraphs]forpinps:print(p)#讀取表格內(nèi)容ts=[tablefortableindocument.tables]fortints:forrowint.rows:forcellinrow.cells:print(cell.text,end='')print()三.任務(wù)一小結(jié)通過本次任務(wù)的學(xué)習(xí)和實踐,使我們了解了python-docx第三方庫的作用,掌握了文檔的基本結(jié)構(gòu),并且通過綜合實訓(xùn)的引導(dǎo),能夠熟練完成文檔的創(chuàng)建和修改、在文檔中插入圖片和表格、樣式的創(chuàng)建和應(yīng)用以及編寫程序讀取指定的word文檔。建議同學(xué)們將有針對性的部分功能盡量使用函數(shù)來完成,需要的時候直接調(diào)用該函數(shù)即可,不需要再進行重復(fù)編碼。任務(wù)二excel自動化一.創(chuàng)建和寫入excel1.
使用xlwt創(chuàng)建和寫入excel
xlwt模塊只支持不超過65535條數(shù)據(jù)的excel97-2003版本,保存的擴展名為*.xls,一旦數(shù)據(jù)量過大就無法使用了,所以在此只進行簡單的介紹。使用xlwt模塊創(chuàng)建和寫入excel的步驟一共有四步分別是:(1)創(chuàng)建工作簿;(2)創(chuàng)建工作表、;(3)在工作表中填充數(shù)據(jù);(4)保存文件。一.創(chuàng)建和寫入excel2.使用openpyxl創(chuàng)建和寫入excel
openpyxl主要針對excel2007年之后的版本(.xlsx),可以讀寫xlsx、xlsm、xltx、xltm等目前常見的Excel文檔,可以進行文件的讀寫、單元格操作、公式、繪圖、數(shù)據(jù)透視表等功能,它對文件大小沒有限制,可以輕松實現(xiàn)Excel自動化辦公,參考代碼如下,運行后的效果如下所示。fromopenpyxlimportWorkbookwb=Workbook()#創(chuàng)建一個工作簿ws=wb.active
#獲取第一個工作表ws.title='城職七大特色專業(yè)群'#設(shè)置工作表名稱ws['A1']='序號'#設(shè)置第1列第1行單元格內(nèi)容ws['B1']='專業(yè)群'data={1:'工業(yè)機器人技術(shù)',2:'市場營銷',3:'市場營銷',4:'大數(shù)據(jù)技術(shù)',
5:'航空技術(shù)',6:'智能建造',7:'文旅康養(yǎng)和創(chuàng)意設(shè)計'}row=2#從第2行開始forkey,valueindata.items():ws.append([key,value])#一次添加一行數(shù)據(jù)(必須是可迭代對象)wb.save("openpyxl.xlsx")#保存Excel文件print("創(chuàng)建和寫入excel成功")二.讀取excel文件1.使用xlrd讀取excel文件
在成功安裝xlrd庫后,使用xlrd讀取xlsx文件時,通常會出現(xiàn)如下的錯誤提示:xlrd.biffh.XLRDError:Excelxlsxfile;notsupported這是因為新版的xlrd(2.0.1版本)已刪除了對xls文件以外的任何內(nèi)容的支持,不支持xlsx文件;如果想要使用xlrd讀取xlsx文件,則需要卸載新版后再安裝舊版xlrd(1.2.0版本),安裝命令如下:pipuninstallxlrdpipinstallxlrd==1.2.0二.讀取excel文件1.使用xlrd讀取excel文件importxlrddata=xlrd.open_workbook('openpyxl.xlsx')print('工作表數(shù)量:',data.nsheets)#獲取工作表數(shù)量print('工作表名稱:',data.sheet_names())#以列表返回所有工作表名稱table=data.sheet_by_index(0)#返回第1個工作表rowcount=table.nrows#當(dāng)前工作表行數(shù)colcount=table.ncols#當(dāng)前工作表列數(shù)cellinfor1=table.cell_value(0,1)#獲取指定行列中單元格的值cellinfor2=table.cell_value(7,1)print('第1個工作表行數(shù):',table.nrows)print('第1個工作表列數(shù):',table.ncols)print('第1個工作表1行2列的值為:',cellinfor1)print('第1個工作表8行2列的值為:',cellinfor2)print('文件讀取成功')二.讀取excel文件2.使用openpyxl讀取excel文件openpyxl中列和行的起始標(biāo)識不再是從0開始,而是1開始的;從excel中讀取出來的數(shù)據(jù)只有兩種類型:即數(shù)值類型和字符串類型,參考代碼和運行后的效果如下圖所示。三.讀取excel文件批量生成word試卷完成本次任務(wù)的操作步驟:(1)導(dǎo)入xlrd、python-docx,打開題庫文件、獲取第一個工作表;(2)使用xlrd讀取準(zhǔn)備好的“data.xlsx”題庫文件,將試題信息全部保存到列表中;(3)使用for循環(huán)語句控制批量生成試卷的數(shù)量;(4)通過python-docx創(chuàng)建文檔對象,并將讀取到的題庫內(nèi)容按樣式寫入word文檔后保存。word文檔試卷打開效果如圖所示,以上功能請同學(xué)們以小組為單位協(xié)同完成。四.任務(wù)二小結(jié)通過本次任務(wù)的學(xué)習(xí)和實踐,使我們了解了常用的excel第三方庫,掌握了xlwt、xlrd、openpyxl的使用方法,并且通過綜合實訓(xùn)的引導(dǎo),能夠熟練完成excel文檔的創(chuàng)建、寫入和讀取。同時將excel和word結(jié)合應(yīng)用起來,完成讀取excel數(shù)據(jù)批量生成word試卷的強化訓(xùn)練,很好地起到了鞏固提高、融會貫通的目的。任務(wù)三
ppt自動化一.
python-pptx簡介
python中ppt的基本結(jié)構(gòu)分別用:Slide(幻燈片):就是演示文稿中每一頁的頁面;Shape(方框、形狀、文本框;Run(文字塊):一般為較少字符和Paragraph(段落)來表示。在幻燈片中添加文本框、圖形、圖片、表格和圖表的方法如下圖所示。添加文本框add_textbox()添加圖形add_shape()添加圖片add_picture()添加表格add_table()
添加圖表add_chart()
二.創(chuàng)建pptx
通過add_slide()插入自定義版式的幻燈片,創(chuàng)建pptx參考代碼和創(chuàng)建后的演示文稿效果如下所示。importpptx#得到演示文稿的對象objobj=pptx.Presentation()#插入幻燈片add_slide()obj.slides.add_slide(obj.slide_layouts[0])#版式1obj.slides.add_slide(obj.slide_layouts[1])#版式2obj.slides.add_slide(obj.slide_layouts[2])#版式3#保存pptx文稿obj.save('ppt1.pptx')print('任務(wù)完成')二.寫入pptx
importpptx#讀取(創(chuàng)建)一個演示文稿對象obj=pptx.Presentation('ppt1.pptx')#訪問第一張幻燈片slide=obj.slides[0]#修改占位符里的內(nèi)容(slide.placeholders)center_title1=slide.placeholders[0]#主標(biāo)題sub_title1=slide.placeholders[1]#副標(biāo)題center_title1.text='重慶城市職業(yè)學(xué)院'sub_title1.text='重慶市永川區(qū)興龍大道1099號'#訪問第二張幻燈片slide=obj.slides[1]center_title2=slide.placeholders[0]#主標(biāo)題sub_title2=slide.placeholders[1]#副標(biāo)題center_title2.text='學(xué)院簡介'sub_title2.text='重慶城市職業(yè)學(xué)院是教育部備案,重慶市人民政府舉辦,\重慶市教委主管的全日制公辦高等院校。'obj.save('ppt1.pptx')
1.寫入標(biāo)題和副標(biāo)題在指定幻燈片中寫入標(biāo)題和副標(biāo)題的參考代碼如下右側(cè),創(chuàng)建后的演示文稿效果如下圖所示。二.寫入pptx
importpptxfrompptx.utilimportCm,Pt#讀取(創(chuàng)建)一個演示文稿對象obj=pptx.Presentation('ppt1.pptx')#訪問第二張幻燈片slide=obj.slides[1]#設(shè)置文本框和左邊、頂端的距離及寬度和高度left=Cm(8);top=Cm(13);width=Cm(15);height=Cm(3)#添加文本框并寫入內(nèi)容text_box=slide.shapes.add_textbox(left,top,width,height)tf=text_box.text_frametf.text='地址:重慶市永川區(qū)興龍大道1099號'p1=tf.add_paragraph()p1.text='招生熱線:023-4957800049579000'p1.line_spacing=1.5#1.5倍行距='仿宋'#字體p1.font.bold=True#加粗p1.font.size=Pt(20)#字號16p2=tf.add_paragraph()p2.text='電子信箱:info@'='仿宋'p2.font.bold=Truep2.font.size=Pt(20)obj.save('ppt1.pptx')print('任務(wù)完成')
2.添加文本框并寫入內(nèi)容在幻燈片指定位置通過add_textbox()插入文本框,參數(shù)依次為left,top,width,heigh
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版校企合作數(shù)字內(nèi)容制作與傳播技能培訓(xùn)協(xié)議2篇
- 二零二五年度股權(quán)代持資產(chǎn)監(jiān)管委托協(xié)議3篇
- 2025版金屬礦床探礦權(quán)轉(zhuǎn)讓合同協(xié)議3篇
- 2025版消防技術(shù)服務(wù)與咨詢合同3篇
- 二零二五年度人工智能教育平臺個人技術(shù)入股合同2篇
- 垃圾食品我不吃安全教育
- 二零二五年度智能家居系統(tǒng)定制個人房屋裝修合同范本2篇
- 二零二五版物業(yè)服務(wù)行業(yè)員工保密協(xié)議規(guī)范3篇
- 二零二五年度農(nóng)業(yè)產(chǎn)業(yè)股權(quán)投資及投資合同規(guī)范3篇
- 二零二五版現(xiàn)代學(xué)徒制協(xié)議書-新能源電動汽車研發(fā)與制造3篇
- 簡易三方換地協(xié)議書范本
- 2025屆廣東省深圳羅湖區(qū)四校聯(lián)考九上數(shù)學(xué)期末綜合測試試題含解析
- 飛鼠養(yǎng)殖技術(shù)指導(dǎo)
- 2024輸血相關(guān)知識培訓(xùn)
- 2023年四川省綿陽市中考初中學(xué)業(yè)水平考試語文試題【含答案】
- 正大天虹方矩管鍍鋅方矩管材質(zhì)書
- 山東省泰安市2022年初中學(xué)業(yè)水平考試生物試題
- 受賄案例心得體會
- 人教A版高中數(shù)學(xué)選擇性必修第一冊第二章直線和圓的方程-經(jīng)典例題及配套練習(xí)題含答案解析
- 圖書館學(xué)基礎(chǔ)簡明教程
- 畢業(yè)設(shè)計(論文)-液體藥品灌裝機的設(shè)計與制造
評論
0/150
提交評論