Python程序設(shè)計(jì)教程(工作手冊(cè)式) 課件 情景三 優(yōu)化程序的性能_第1頁(yè)
Python程序設(shè)計(jì)教程(工作手冊(cè)式) 課件 情景三 優(yōu)化程序的性能_第2頁(yè)
Python程序設(shè)計(jì)教程(工作手冊(cè)式) 課件 情景三 優(yōu)化程序的性能_第3頁(yè)
Python程序設(shè)計(jì)教程(工作手冊(cè)式) 課件 情景三 優(yōu)化程序的性能_第4頁(yè)
Python程序設(shè)計(jì)教程(工作手冊(cè)式) 課件 情景三 優(yōu)化程序的性能_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python程序設(shè)計(jì)教程

(工作手冊(cè)式)情景三

優(yōu)化程序的性能任務(wù)mission1234函數(shù)異常處理面向?qū)ο蟪绦蛟O(shè)計(jì)包與庫(kù)5文件操作任務(wù)一函數(shù)一.函數(shù)的定義在實(shí)際開(kāi)發(fā)中,如果想把一段功能獨(dú)立的代碼進(jìn)行封裝,我們就可以在這段代碼的上方,先寫(xiě)上def關(guān)鍵字(def這個(gè)關(guān)鍵字是英文單詞define的縮寫(xiě),它的中文含義就是定義),def之后先空格,然后再給你這段代碼取個(gè)名字;函數(shù)名的后邊緊跟的是一對(duì)小括號(hào)或者叫圓括號(hào),圓括號(hào)的后面再緊跟一個(gè)重要的冒號(hào)。冒號(hào)后一定要換行縮進(jìn)再定義函數(shù)體,函數(shù)體內(nèi)就是我們要封裝的函數(shù)功能代碼。我們編寫(xiě)一個(gè)say_hello的函數(shù),如右圖所示。defsay_hello():print("Hello!")print("Howareyou!")print("Goodmorning!")二.函數(shù)調(diào)用函數(shù)的定義實(shí)現(xiàn)了函數(shù)的功能,函數(shù)定義好了,如果不用放在哪也就只是擺設(shè),怎么將其用起來(lái),即函數(shù)調(diào)用。函數(shù)調(diào)用很簡(jiǎn)單,通過(guò)函數(shù)名和它后邊那對(duì)圓括號(hào),便可完成,后邊那對(duì)圓括號(hào)叫形參表。我們要調(diào)用say_hello函數(shù),直接使用函數(shù)名加形參表就可以了,如:say_hello()特別需要注意的是:函數(shù)定義了一定要調(diào)用才會(huì)工作,你不調(diào)用它是不會(huì)主動(dòng)工作的。三.形參形參是指定義函數(shù)時(shí),圓括號(hào)中的參數(shù),形參是用來(lái)接收實(shí)參的值的,它只能在函數(shù)內(nèi)部作為變量使用。在定義函數(shù)頭部時(shí),圓括號(hào)中便可以列舉出需要用到的形參的名稱,多個(gè)形參之間用逗號(hào)分隔。例如,定義一個(gè)求兩數(shù)之和的函數(shù),代碼可以編寫(xiě)為:這里的num1和num2就是用來(lái)表示加數(shù)與被加數(shù)的形參。所謂形參,從字面意思我們可以看出,它只是形式參數(shù),并沒(méi)有實(shí)際值,當(dāng)函數(shù)需要數(shù)據(jù)傳遞時(shí),就需要在形參表設(shè)置形參,它的作用是等待別人傳遞數(shù)據(jù)給它。形參的作用有兩個(gè):一是告訴外部把值傳到我這里來(lái),二是在函數(shù)內(nèi)部當(dāng)作變量運(yùn)算。def

sum(num1,num2):四.

實(shí)參實(shí)參是指調(diào)用函數(shù)時(shí),圓括號(hào)中的參數(shù),實(shí)參用來(lái)存放數(shù)據(jù)并將數(shù)據(jù)傳遞給形參。剛才定義的求和的sum()函數(shù)調(diào)用時(shí),如果是將12和5兩數(shù)求和,可以將被加數(shù)12和加數(shù)5的值寫(xiě)進(jìn)實(shí)參表,編寫(xiě)為:實(shí)參的作用只有一個(gè):把數(shù)據(jù)傳遞給形參。sum圓括號(hào)12逗號(hào)5,這里的12和5就是實(shí)參。調(diào)用語(yǔ)句就是直接使用已經(jīng)定義好的函數(shù)功能:將實(shí)參12傳遞給函數(shù)中的形參num1,實(shí)參5將傳遞給函數(shù)中的形參num2。sum(12,5)五.法變量的作用域變量的作用域就是變量在什么范圍內(nèi)起作用,一個(gè)變量在不同的位置,它的作用域也是不一樣的。定義在函數(shù)外部的變量稱為全局變量,全局變量的作用域是整個(gè)全局;局部變量是在函數(shù)的內(nèi)部定義,只能在其聲明的函數(shù)內(nèi)部使用。defadd():s=n1+n2returnsn1=1n2=2result=add()print('{}+{}={}'.format(n1,n2,result))deflocalvar():

n3=1returnlocalvar()print(n3)六.編寫(xiě)函數(shù)求圓的面積首先定義一個(gè)求圓面積的函數(shù)defcircle(radius);再通過(guò)for循環(huán)控制運(yùn)行3次,在for循環(huán)體中使用input函數(shù)輸入圓的半徑,接著調(diào)用circle(將用戶輸入的半徑傳遞給radius);再通過(guò)return

語(yǔ)句返回計(jì)算后圓的面積,最后使用print(接收return變量)輸出面積。defcircle1(radius):area=3.14*radius**2returnareaforiinrange(3):r=float(input("請(qǐng)輸入圓的半徑:"))s=circle1(r)print('圓的面積為:{:.3f}'.format(s))七.任務(wù)一小結(jié)通過(guò)本次任務(wù)的學(xué)習(xí)和實(shí)踐,使我們了解了函數(shù)的功能和特點(diǎn),掌握了函數(shù)的定義和調(diào)用的方法,并且通過(guò)綜合實(shí)訓(xùn)的引導(dǎo),能夠熟練運(yùn)用多種方法編寫(xiě)函數(shù)來(lái)解決實(shí)際問(wèn)題。如果需要編寫(xiě)的程序非常復(fù)雜,可以將其分解為多個(gè)函數(shù),由團(tuán)隊(duì)成員分工協(xié)作一同來(lái)完成;函數(shù)也需要合作,合作才能共贏。任務(wù)二面向?qū)ο蟪绦蛟O(shè)計(jì)一.面向?qū)ο蟪绦蛟O(shè)計(jì)1.對(duì)象的引入

對(duì)象(object)是一種數(shù)據(jù)抽象或數(shù)據(jù)結(jié)構(gòu)抽象,用來(lái)表示程序中需要處理或已處理的信息。Python從設(shè)計(jì)之初就是一門面向?qū)ο蟮恼Z(yǔ)言,它有一個(gè)重要的概念,即一切皆對(duì)象。數(shù)字、字符串、元組、列表、字典、函數(shù)、方法、類、模塊等等都是對(duì)象。將對(duì)象的特征用狀態(tài)和行為來(lái)表示,狀態(tài)就是靜態(tài)屬性,主要指對(duì)象包含的各種信息,如學(xué)號(hào)、姓名、性別、籍貫等;行為就是動(dòng)態(tài)屬性,表示對(duì)象所具有的功能和操作,如學(xué)習(xí)、吃飯、體育鍛煉等。一.面向?qū)ο蟪绦蛟O(shè)計(jì)2.類的定義在Python的世界中也是同樣道理,要?jiǎng)?chuàng)建一個(gè)個(gè)的對(duì)象,就要先創(chuàng)建模具,也是先創(chuàng)建一個(gè)類。那如何定義類呢?使用關(guān)鍵字class來(lái)表示類,后面加空格再寫(xiě)類名,類名后同樣需要緊跟一個(gè)重要的冒號(hào),即class類名:,在定義類時(shí),類名要遵循大駝峰命名法,比如定義一個(gè)汽車類,它的成員變量有:品牌、型號(hào)、顏色、價(jià)格;它的成員方法有:行駛。classCar:brand='長(zhǎng)城'

type='H6''color='黑色'

price='120000'defdrive(self):print('Icanrun')一.面向?qū)ο蟪绦蛟O(shè)計(jì)3.對(duì)象的創(chuàng)建與使用汽車類創(chuàng)建完成以后,怎么通過(guò)汽車類來(lái)創(chuàng)建對(duì)象呢?這一步非常簡(jiǎn)單,可以使用對(duì)象名=類名()來(lái)完成,此時(shí)我們要?jiǎng)?chuàng)建一個(gè)car1對(duì)象名,則直接通過(guò)car1=Car()來(lái)完成對(duì)象的創(chuàng)建,參考代碼如下:car1=Car() #創(chuàng)建car1對(duì)象car1.brand='長(zhǎng)安' #訪問(wèn)成員變量car1.type='CS75'

#調(diào)用成員方法car1.drive()二.封裝1.封裝的引入

封裝(Encapsulation)是對(duì)具體對(duì)象的一種抽象,即將某些部分隱藏起來(lái),在程序外部看不到,其含義是其他程序無(wú)法調(diào)用。要了解封裝,離不開(kāi)“私有化”,就是將類或者是函數(shù)中的某些屬性限制在某個(gè)區(qū)域之內(nèi),外部無(wú)法調(diào)用。在類中把某些屬性和方法隱藏起來(lái)(或者說(shuō)定義成私有的),只在類的內(nèi)部使用、外部無(wú)法訪問(wèn),或者留下少量接口(函數(shù))供外部訪問(wèn)。Python中私有化的方法也比較簡(jiǎn)單,即在準(zhǔn)備私有化的屬性和方法名字前面加兩個(gè)下劃線(__)即可。二.封裝2.封裝練習(xí)

將學(xué)生類Student中成員變量年齡age和性別gender私有化;同時(shí)將成員方法study()封裝起來(lái),參考代碼如右1所示。接下來(lái),通過(guò)學(xué)生類Student創(chuàng)建一個(gè)學(xué)生對(duì)象jack,再使用對(duì)象jack來(lái)訪問(wèn)學(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é)生類中再定義兩個(gè)公共的方法,讓這兩個(gè)方法去訪問(wèn)同類中的私有屬性和方法,這樣就可以間接讓學(xué)生類外的對(duì)象訪問(wèn)私有屬性和方法了,參考代碼如下。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.怎么繼承

繼承是指將一個(gè)具有廣泛意義的類定義為父類(又稱為基類或超類),新建的類可以繼承一個(gè)或者多個(gè)父類,新建的類稱為子類(派生類)。子類的創(chuàng)建語(yǔ)法格式如下。class子類名(父類名):

成員變量的定義(新增或修改)成員方法的定義(新增或修改)三.繼承2.單繼承創(chuàng)建一個(gè)動(dòng)物類Animal,該類具有吃、喝、跑、睡4個(gè)方法,參考代碼如下。再創(chuàng)建一個(gè)貓類Cat,讓它繼承動(dòng)物類,品種為貍花貓,并且新增一個(gè)捉老鼠的方法;再創(chuàng)建一個(gè)狗類Dog,讓它繼承動(dòng)物類,品種為中華田園犬,并且新增一個(gè)看家護(hù)院的方法;參考代碼如下。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('看家護(hù)院')四.多態(tài)python中,多態(tài)是指不同的子類對(duì)象調(diào)用相同的父類方法,產(chǎn)生不同的執(zhí)行結(jié)果。多態(tài)一般指一類事物多種形態(tài),同時(shí)一個(gè)類有多個(gè)子類,因而多態(tài)的概念依賴于繼承。實(shí)現(xiàn)多態(tài)的兩個(gè)前提:一是要有繼承(多態(tài)必須發(fā)生在父類和子類之間);二是子類必須重寫(xiě)父類的方法?,F(xiàn)在我們繼續(xù)使用單繼承的案例來(lái)講解多態(tài)的知識(shí)點(diǎn),首先定義一個(gè)Animal父類,在該類中寫(xiě)一個(gè)who方法;再寫(xiě)兩個(gè)子類Cat和Dog繼承Animal類,并且每個(gè)子類都重寫(xiě)父類的who方法,輸出該子類動(dòng)物的名字。classAnimal:

defwho(self):print('我是小動(dòng)物')classCat(Animal):

defwho(self):print('我是貍花貓')

defwork(self):print('捉老鼠')classDog(Animal):

defwho(self):print('我是中華田園犬')

defwork(self):print('看家護(hù)院')a1=Animal()c1=Cat()d1=Dog()a1.who()c1.who()d1.who()五.任務(wù)二小結(jié)通過(guò)本次任務(wù)的學(xué)習(xí)和實(shí)踐,使我們了解了面向?qū)ο蟪绦蛟O(shè)計(jì)的特征和優(yōu)勢(shì),掌握了類的定義、對(duì)象的創(chuàng)建和使用;同時(shí)能夠熟練完成封裝、繼承和多態(tài)的程序設(shè)計(jì)和編碼。封裝增加了代碼的安全性、繼承提高了代碼的可重用性、多態(tài)增強(qiáng)了代碼的靈活度和可擴(kuò)展性。任務(wù)三

異常處理一.異常處理1.異常的概念當(dāng)我們?cè)趯?xiě)Python代碼的時(shí)候,或多或少都會(huì)遇到代碼錯(cuò)誤或者異常的情況,那異常與錯(cuò)誤有什么區(qū)別呢?異常是指不完整、不合法輸入,或者計(jì)算出現(xiàn)錯(cuò)誤(但這時(shí)的語(yǔ)法和邏輯是正確的);錯(cuò)誤是指代碼不符合解釋器或者編譯器語(yǔ)法要求。當(dāng)程序運(yùn)行時(shí),如果Python解釋器遇到一個(gè)錯(cuò)誤,會(huì)停止程序的執(zhí)行并且提示一些錯(cuò)誤信息,這就是異常。通常將程序停止執(zhí)行并且提示錯(cuò)誤信息這個(gè)動(dòng)作稱之為:拋出異常。在程序開(kāi)發(fā)時(shí),很難把所有的特殊情況都處理的面面俱到,通過(guò)異常捕獲可以針對(duì)突發(fā)事件做集中的處理,從而保證程序的穩(wěn)定性和健壯性。二.異常處理2.捕獲異常在程序開(kāi)發(fā)中,如果對(duì)某些代碼的執(zhí)行不確定是否正確,可以增加try來(lái)捕獲異常。try:嘗試,下方編寫(xiě)要嘗試的代碼,不確定是否能正常執(zhí)行的代碼;except:如果不是,下方編寫(xiě)嘗試失敗的代碼。捕獲異常的語(yǔ)法格式如下:try:

嘗試執(zhí)行的代碼except:

出現(xiàn)錯(cuò)誤的處理方法二.異常處理3.常見(jiàn)異常序號(hào)異常名稱描述1AttributeError對(duì)象沒(méi)有這個(gè)屬性2EOFError沒(méi)有內(nèi)建輸入,到達(dá)EOF標(biāo)記3IndexError序列中沒(méi)有該索引(index)4ImportError導(dǎo)入模塊/對(duì)象失敗

5IOError輸入/輸出操作失敗6KeyError映射中沒(méi)有該鍵7LookupError無(wú)效數(shù)據(jù)查詢的基類

8NameError未聲明/初始化對(duì)象(沒(méi)有屬性)9OSError操作系統(tǒng)錯(cuò)誤10SyntaxErrorPython語(yǔ)法錯(cuò)誤11TypeError對(duì)類型無(wú)效的操作12TabErrorTab和空格混用13ValueError傳入的參數(shù)無(wú)效14WindowsError系統(tǒng)調(diào)用失敗15UnicodeErrorUnicode相關(guān)的錯(cuò)誤

16ZeroDivisionError除(或取模)零(所有數(shù)據(jù)類型)三.任務(wù)三小結(jié)通過(guò)本次任務(wù)的學(xué)習(xí)和實(shí)踐,使我們了解了異常處理的功能和特點(diǎn),掌握了常見(jiàn)異常名稱和錯(cuò)誤類型捕獲的方法,養(yǎng)成良好的編程習(xí)慣;并且通過(guò)綜合實(shí)訓(xùn)的引導(dǎo),能夠熟練捕獲異常以及出現(xiàn)錯(cuò)誤后的處理方法。實(shí)際上這和我們做人做事的道理是一樣的,同學(xué)們要努力拓展知識(shí)的寬度和深度,面對(duì)同一個(gè)問(wèn)題,多思考,多實(shí)踐,多改進(jìn),多總結(jié)。沒(méi)有做不到,只有想不到,這也是學(xué)無(wú)止境的道理。任務(wù)四

包與庫(kù)一.包與庫(kù)1.什么是包簡(jiǎn)單來(lái)說(shuō),包(package)就是一個(gè)文件夾,每個(gè)包目錄中必須存在__init__.py文件,也就是裝著__init__.py文件的文件夾,該文件的內(nèi)容可以為空。包是一個(gè)分層次的文件目錄結(jié)構(gòu),是模塊和子包的集合體。2.

什么是庫(kù)

庫(kù)(library),是模塊和包的集合,分為標(biāo)準(zhǔn)庫(kù)、第三方庫(kù)和自定義庫(kù);Python的標(biāo)準(zhǔn)庫(kù)也稱為Python內(nèi)置庫(kù),是隨著Python安裝的時(shí)候默認(rèn)自帶的庫(kù),常用標(biāo)準(zhǔn)庫(kù)如右表所示。常用的標(biāo)準(zhǔn)庫(kù)序號(hào)名稱功能描述1os操作系統(tǒng)管理2sys解釋器交互3shutil文件管理4math數(shù)學(xué)常數(shù)和數(shù)學(xué)函數(shù)5random隨機(jī)數(shù)6datetime日期和時(shí)間7time時(shí)間訪問(wèn)和轉(zhuǎn)換8jsonJSON編碼和解碼9glob查找文件10urllibhttp訪問(wèn)一.包與庫(kù)3.包的使用首先打開(kāi)PyCharm,在當(dāng)前項(xiàng)目(D:\py)上單擊右鍵,選擇“New”,在彈出的子菜單中選擇創(chuàng)建“Pythonpackage”,輸入包名“cqcvc”后回車確定即可;緊接著鼠標(biāo)右鍵單擊該包名,創(chuàng)建三個(gè)py文件分別是__init__.py、div.py和leapyear.py。一.包與庫(kù)4.導(dǎo)入包(1)import包名[.模塊名[as別名]](2)from包名import模塊名[as別名](3)from包名.模塊名import成員名[as別名]二.標(biāo)準(zhǔn)庫(kù)在常用標(biāo)準(zhǔn)庫(kù)中有一個(gè)操作文件和文件夾的os庫(kù),它提供通用的、基本的操作系統(tǒng)交互功能,主要有:系統(tǒng)相關(guān)變量和操作、文件和目錄相關(guān)操作、執(zhí)行命令和管理進(jìn)程,使用print(dir(os))可以發(fā)現(xiàn),os標(biāo)準(zhǔn)庫(kù)包含了豐富的函數(shù)。os標(biāo)準(zhǔn)庫(kù)還包含了一個(gè)path子模塊,該子模塊主要提供了豐富的路徑操作方法,處理文件路徑及信息等操作。三.第三方庫(kù)1.

NumPy

NumPy是Python的一種開(kāi)源的數(shù)值計(jì)算擴(kuò)展,提供了矩陣運(yùn)算的功能,其一般與Scipy、matplotlib一起使用,可用來(lái)存儲(chǔ)和處理大型矩陣,比Python自身的嵌套列表結(jié)構(gòu)要高效。2.

matplotlib

matplotlib是一個(gè)python2D繪圖庫(kù),利用它可以畫(huà)出許多高質(zhì)量的圖像,開(kāi)發(fā)者僅需要幾行代碼,便可以生成直方圖,條形圖,餅圖,散點(diǎn)圖等。四.任務(wù)四小結(jié)通過(guò)本次任務(wù)的學(xué)習(xí)和實(shí)踐,使我們了解了包與庫(kù)的區(qū)別和特點(diǎn),掌握了如何創(chuàng)建包和導(dǎo)入包的三種方法,并且通過(guò)綜合實(shí)訓(xùn)的引導(dǎo),能夠熟練運(yùn)用標(biāo)準(zhǔn)庫(kù)大幅提高程序開(kāi)發(fā)的效率;能夠安裝和使用第三方庫(kù)完成特定功能的實(shí)現(xiàn)。功能強(qiáng)大的第三方庫(kù),可以讓開(kāi)發(fā)者站在巨人的肩膀上工作,將重要工作由造輪子變成了找輪子,而一個(gè)好的輪子有以下特殊:開(kāi)源、低耦合、有開(kāi)發(fā)文檔、接口友好、社區(qū)相對(duì)活躍等。為了找到好輪子,需要同學(xué)們具備信息檢索能力、外文資料閱讀能力和代碼閱讀能力以及平時(shí)的經(jīng)驗(yàn)積累。正所謂:“不積跬步無(wú)以至千里,不積小流無(wú)以成江?!?。任務(wù)五

文件操作一.文件的打開(kāi)與關(guān)閉1.文件的打開(kāi)打開(kāi)文件使用open內(nèi)置函數(shù)來(lái)實(shí)現(xiàn),open底層調(diào)用的是操作系統(tǒng)的接口;打開(kāi)文件可以使用open和withopen兩種方式來(lái)完成,具體格式如下。f1=open(文件名,讀寫(xiě)模式,encoding='utf-8')withopen(文件名,讀寫(xiě)模式,encoding='utf-8')asf2:序號(hào)讀寫(xiě)模式描述1‘r’以只讀方式打開(kāi)文件(默認(rèn)方式)2‘w’以只寫(xiě)方式打開(kāi)文件(打開(kāi)時(shí)清空文件

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論