




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本章導讀在實際開發(fā)過程中,經(jīng)常會遇到很多完全相同或者非常相似的操作,這時,可以將實現(xiàn)類似操作的代碼封裝為函數(shù),然后在需要的地方調(diào)用該函數(shù)。這樣不僅可以實現(xiàn)代碼的復用,還可以使代碼更有條理性,增加代碼的可靠性。本章首先介紹函數(shù)的定義和調(diào)用,并詳細介紹函數(shù)的參數(shù)和返回值;然后介紹函數(shù)的嵌套、遞歸函數(shù)、匿名函數(shù)以及變量的作用域;接著介紹模塊的導入和創(chuàng)建方法;最后通過兩個典型案例,讓讀者進一步掌握函數(shù)在程序設(shè)計中的應用。第7章函數(shù)學習目標掌握函數(shù)的定義和調(diào)用方法熟悉函數(shù)的返回值和函數(shù)參數(shù)傳遞的過程理解函數(shù)的嵌套調(diào)用與遞歸調(diào)用的定義和使用方法了解匿名函數(shù)掌握局部變量和全局變量的區(qū)別和典型用法掌握模塊的導入與創(chuàng)建方法以及包的使用方法7.1函數(shù)的定義和使用7.2
函數(shù)的參數(shù)
7.3
函數(shù)的嵌套
7.4
遞歸函數(shù)
7.5
變量作用域7.6
匿名函數(shù)7.7
模塊
7.8
典型案例7.1函數(shù)的定義和使用7.1.1函數(shù)的定義7.1.2函數(shù)的調(diào)用7.1.3函數(shù)的返回值函數(shù)是一段具有特定功能的、可重復使用的代碼段,它能夠提高程序的模塊化和代碼的復用率。Python提供了很多內(nèi)建函數(shù)(如print()、input()、int()函數(shù)等)標準庫函數(shù)(如math庫中的sqrt()函數(shù))用戶還可以自己編寫函數(shù),稱為自定義函數(shù)。在Python中,定義函數(shù)的一般形式為:def函數(shù)名([形式參數(shù)列表]):
函數(shù)體使用def關(guān)鍵字來定義函數(shù)函數(shù)名可以是任何有效的Python標識符函數(shù)名后的圓括號內(nèi)是形式參數(shù)列表(簡稱形參),形式參數(shù)列表是調(diào)用該函數(shù)時傳遞給它的值,可以有零個、一個或多個,當傳遞多個參數(shù)時各參數(shù)之間由逗號分隔。函數(shù)體是函數(shù)每次被調(diào)用時執(zhí)行的代碼,由一行或多行語句組成。例如:
注意(1)即使該函數(shù)不需要接收任何參數(shù),也必須保留一對空的圓括號。(2)括號后面的冒號不能省略。(3)函數(shù)體相對于def關(guān)鍵字必須保持一定的空格縮進。defprint_text():print("Helloworld!")定義名為“print_text()”的函數(shù),該函數(shù)的功能是輸出“Helloworld!”定義了函數(shù)后,就相當于有了一段具有特定功能的代碼,要想執(zhí)行這些代碼,需要調(diào)用函數(shù)。函數(shù)調(diào)用的一般形式為:函數(shù)名([實際參數(shù)列表])例:編程實現(xiàn)輸出如下內(nèi)容,要求使用函數(shù)。************************Helloworld!************************defprint_line():print("************")defprint_text():print("Helloworld!")print_line() #調(diào)用函數(shù)print_line() #調(diào)用函數(shù)print_text() #調(diào)用函數(shù)print_line() #調(diào)用函數(shù)print_line() #調(diào)用函數(shù)程序運行效果函數(shù)并非總是直接輸出數(shù)據(jù),它還可以處理一些數(shù)據(jù),并返回一個或一組值。函數(shù)返回的值被稱為返回值。在Python中,函數(shù)使用return語句返回值。return語句用來退出函數(shù)并將程序返回到函數(shù)被調(diào)用的位置繼續(xù)執(zhí)行。return語句可以同時返回0個、1個或多個結(jié)果給函數(shù)被調(diào)用處的變量。例:編寫函數(shù)實現(xiàn)求兩數(shù)中較小數(shù)。defminimal(x,y): #自定義計算較小值函數(shù)
ifx>y: #如果x>y成立,返回y的值
returnyelse: #否則返回x的值
returnxa=float(input('輸入第一個數(shù)據(jù):')) #顯示提示語并接收a的值b=float(input('輸入第二個數(shù)據(jù):')) #顯示提示語并接收b的值c=minimal(a,b) #調(diào)用函數(shù),將較小值賦給cprint('較小值為:',c) #輸出c的值程序運行效果
注意如果函數(shù)沒有return語句,Python將認為該函數(shù)以returnNone結(jié)束,即返回空值。函數(shù)也可以用return語句返回多個值,多個值以元組類型保存。例:編寫程序,要求輸入字符串,計算字符串中大寫字母和小寫字母的個數(shù)并輸出,計算過程用函數(shù)實現(xiàn)。defdemo(s): #定義函數(shù)
a=0
#變量a用于存儲大寫字母個數(shù)
b=0 #變量b用于存儲小寫字母個數(shù)
forchins: #循環(huán)判斷字符串中的每個字母
ifch.isupper(): #調(diào)用isupper()方法判斷是否為大寫字母
a+=1 #如果是a加1elifch.islower(): #調(diào)用islower()方法判斷是否為小寫字母
b+=1 #如果是b加1returna,b #返回a和b的值s=input('請輸入字符串') #輸入字符串c=demo(s) #調(diào)用函數(shù)返回a和b的值給變量cprint(c,type(c)) #輸出變量c及變量c的類型print('大寫字母的個數(shù)為:',c[0],',小寫字母的個數(shù)為:',c[1])#輸出結(jié)果程序運行效果7.2函數(shù)的參數(shù)7.2.2參數(shù)類型7.2.1實參和形參定義函數(shù)時,圓括號內(nèi)是使用逗號分隔的形式參數(shù)列表(簡稱形參),調(diào)用函數(shù)時向其傳遞實參,根據(jù)不同的參數(shù)類型,將實參的值或引用傳遞給形參。1.傳值當參數(shù)類型為固定數(shù)據(jù)類型(如整數(shù)、浮點數(shù)、字符串、元組等)時,在函數(shù)內(nèi)部直接修改形參的值不會影響實參。例:閱讀以下程序,分析輸出結(jié)果。defChangeInt(a):a=10a=2ChangeInt(a)print('a=',a)程序運行效果但當參數(shù)類型為可變數(shù)據(jù)類型(如列表、字典、集合等)時,在函數(shù)內(nèi)部使用下標或其他方式為其增加、刪除元素或修改元素值時,修改后的結(jié)果是可以反映到函數(shù)之外的,即實參也會得到相應的修改。2.傳引用例:閱讀以下程序,分析輸出結(jié)果。defchangeme(mylist):
mylist.append([1,2,3,4])
print("函數(shù)內(nèi)取值:",mylist)returnmylist=[10,20,30]changeme(mylist)print("函數(shù)外取值:",mylist)程序運行效果1.位置參數(shù)調(diào)用函數(shù)時,實參和形參的順序必須嚴格一致,并且實參和形參的數(shù)量必須相同。例:運行以下程序,分析運行結(jié)果。defprintme(a,b,c):print(a,b,c)printme(1,2,3)printme(1,2)程序運行效果2.默認值參數(shù)在定義函數(shù)時,可以為函數(shù)的參數(shù)設(shè)置默認值,這個參數(shù)被稱為默認值參數(shù)。帶有默認值參數(shù)的函數(shù)定義語法如下:在調(diào)用帶有默認值參數(shù)的函數(shù)時,可以不用為設(shè)置了默認值的形參進行傳值,此時函數(shù)將會直接使用函數(shù)定義時設(shè)置的默認值,也可以通過顯式賦值來替換其默認值。def函數(shù)名(…,形參名=默認值):
函數(shù)體
知識庫可以使用“函數(shù)名.__defaults__”隨時查看函數(shù)所有默認值參數(shù)的當前值,其返回值為一個元組,其中的元素依次表示每個默認值參數(shù)的當前值。例:默認值參數(shù)。defprintinfo(name,age=35): #定義函數(shù),打印任何傳入的字符串
print("名字:",name)print("年齡:",age)return#調(diào)用printinfo函數(shù)print(printinfo.__defaults__) #輸出函數(shù)默認值參數(shù)printinfo("root",50) #顯式賦值print("------------------------")printinfo("root") #使用默認值參數(shù)程序運行效果
提示在定義帶有默認值參數(shù)的函數(shù)時,默認值參數(shù)必須出現(xiàn)在函數(shù)形參列表的最右端,否則會提示語法錯誤。deff(a=1,b,c=3):print(a,b,c)例如:以下函數(shù)的定義是錯誤的:多次調(diào)用函數(shù)并不為默認值參數(shù)傳遞值時,默認值參數(shù)只在定義時進行一次解釋和初始化,對于列表、字典這樣可變類型的默認值參數(shù),這一點可能會導致邏輯錯誤。因此,一般來說,要避免使用列表、字典、集合或其他可變數(shù)據(jù)類型作為函數(shù)參數(shù)的默認值。例:閱讀以下程序,分析運行結(jié)果。defdemo(newitem,old_list=[]):old_list.append(newitem)returnold_listprint(demo('5',[1,2,3,4]))print(demo('a'))print(demo('b'))程序運行效果如果在定義函數(shù)時某個參數(shù)的默認值為一個變量,那么參數(shù)的默認值只依賴于函數(shù)定義時該變量的值。例:運行以下程序,分析運行結(jié)果。a=1deff(n=a):print(n)a=5f()程序運行效果3.關(guān)鍵字參數(shù)關(guān)鍵字參數(shù)是指調(diào)用函數(shù)時的參數(shù)傳遞方式,是一種按參數(shù)名字傳遞值的方式。使用關(guān)鍵字參數(shù)允許函數(shù)調(diào)用時參數(shù)的順序與定義時不一致,Python解釋器能夠用參數(shù)名匹配參數(shù)值。例:關(guān)鍵字參數(shù)。defprintinfo(name,age):
print("名字:",name)
print("年齡:",age)return#調(diào)用printinfo函數(shù)printinfo(age=50,name="runoob")程序運行效果4.不定長參數(shù)通常在定義一個函數(shù)時,若希望函數(shù)能夠處理比定義時更多的參數(shù),此時可以在函數(shù)中使用不定長參數(shù)。def函數(shù)名([形參列表,]*args,**kwargs):
函數(shù)體*args用來接收任意多個實參并將其放在一個元組中**kwargs用來接收類似于關(guān)鍵字參數(shù)一樣顯式賦值形式的多個實參并將其放入字典中例:不定長參數(shù)。deff(a,b,*args,**kwargs):print(a)print(b)print(args)print(kwargs)f(1,2,3,4,5,x=6,z=7)程序運行效果7.3函數(shù)的嵌套Python允許函數(shù)的嵌套定義,即在函數(shù)內(nèi)部可以再定義另外一個函數(shù)。defprint_line(): #定義print_line()函數(shù)
print("************")defprint_text(): #嵌套定義print_text()函數(shù)
print("Helloworld!")print_text() #調(diào)用print_text()函數(shù)print_line() #調(diào)用print_line()函數(shù)例如:以下代碼就是在print_line()函數(shù)中嵌套定義了print_text()函數(shù)1.嵌套定義2.嵌套調(diào)用Python還允許在一個函數(shù)中調(diào)用另外一個函數(shù),這就是函數(shù)的嵌套調(diào)用。例:計算1!+2!+3!+…+10!的值并輸出,使用函數(shù)的嵌套調(diào)用實現(xiàn)。deffac(k): #定義fac函數(shù),計算階乘
i=2t=1whilei<=k:t*=ii=i+1returnt #返回階乘結(jié)果defsum(n): #定義sum函數(shù),求累加
s=0i=1whilei<=n:s=s+fac(i) #調(diào)用fac函數(shù)
i+=1returns #返回累加結(jié)果print('1!+2!+3!…10!=',sum(10)) #調(diào)用sum函數(shù)程序運行效果7.4遞歸函數(shù)Python支持函數(shù)的遞歸調(diào)用,所謂遞歸就是函數(shù)直接或間接地調(diào)用其本身。直接遞歸調(diào)用間接遞歸調(diào)用
提示這兩種遞歸調(diào)用都是無休止地調(diào)用自身。因此,為了防止無限遞歸,所有遞歸函數(shù)都需要設(shè)定終止條件。例:計算n的階乘。deff(n): #定義遞歸函數(shù)
ifn==1: #當n等于1時返回1return1else: #當n不為1是返回f(n-1)*nreturnf(n-1)*nn=int(input('請輸入一個正整數(shù):')) #輸入一個整數(shù)print(n,'的階乘結(jié)果為:',f(n)) #調(diào)用函數(shù)f并輸出結(jié)果程序運行效果7.5變量作用域7.5.2global和nonlocal關(guān)鍵字7.5.1局部變量和全局變量所謂局部變量,指的是定義在函數(shù)內(nèi)的變量,只能在函數(shù)內(nèi)使用,它與函數(shù)外具有相同名稱的其他變量沒有任何關(guān)系。不同函數(shù)中,可以使用相同名字的局部變量,它們代表不同對象,互不干擾。此外,函數(shù)的形式參數(shù)也屬于局部變量,作用范圍僅限于函數(shù)內(nèi)部。在函數(shù)之外定義的變量稱為全局變量,全局變量在整個程序范圍內(nèi)有效。例:分析以下程序的運行結(jié)果。total=0 #全局變量totaldefsum(arg1,arg2): #返回2個參數(shù)的和
total=arg1+arg2 #局部變量totalprint("函數(shù)內(nèi)是局部變量:",total) #輸出局部變量total的值
returntotalsum(10,20) #調(diào)用sum函數(shù)print("函數(shù)外是全局變量:",total) #輸出全局變量total的值程序運行效果當內(nèi)部作用域想要使用外部作用域的變量時,可使用global和nonlocal關(guān)鍵字。1.global關(guān)鍵字在函數(shù)內(nèi)部修改一個定義在函數(shù)外的變量時,須使用global關(guān)鍵字明確聲明變量。在函數(shù)內(nèi)部通過global關(guān)鍵字來聲明或定義全局變量,可分為兩種情況:(1)一個變量已在函數(shù)外定義,如果在函數(shù)內(nèi)需要使用該變量的值或修改該變量的值,并將修改結(jié)果反映到函數(shù)外,可以在函數(shù)內(nèi)用關(guān)鍵字global明確聲明該全局變量。(2)在函數(shù)內(nèi)部直接使用global關(guān)鍵字將一個變量聲明為全局變量,如果在函數(shù)外沒有定義該全局變量,在調(diào)用該函數(shù)后,會創(chuàng)建新的全局變量。例:分析以下程序的運行結(jié)果。num=1deffun():globalnum #使用global關(guān)鍵字聲明變量為全局變量
num+=1print('函數(shù)內(nèi)num的值為',num)fun()print('函數(shù)外num的值為',num)程序運行效果2.nonlocal關(guān)鍵字如果要在一個嵌套的函數(shù)中修改嵌套作用域中的變量,則須使用nonlocal關(guān)鍵字。例:分析以下程序的運行結(jié)果。defouter():num=1definner():nonlocalnum #nonlocal關(guān)鍵字聲明
num=2print('inner函數(shù)中num的值為',num)inner()print('outer函數(shù)中num的值為',num)outer()程序運行效果7.6匿名函數(shù)關(guān)鍵字lambda用于定義一種特殊的函數(shù)——匿名函數(shù),又稱lambda函數(shù)。匿名函數(shù)并非沒有名字,而是將函數(shù)名作為函數(shù)結(jié)果返回,其語法格式如下:函數(shù)名=lambda[參數(shù)列表]:表達式簡單地說,lambda函數(shù)用于定義簡單的、能夠在一行內(nèi)表示的函數(shù),返回一個函數(shù)類型。>>>sum=lambdaarg1,arg2:arg1+arg2 #定義lambda函數(shù)>>>print('相加后的值為:',sum(10,20)) #調(diào)用sum函數(shù)相加后的值為:30例如:lambda函數(shù)常用在臨時需要一個類似于函數(shù)的功能,但又不想定義函數(shù)的場合。例如,作為內(nèi)置函數(shù)sorted()和列表方法sort()的key參數(shù)。例:給定多位學生信息(包括學號、姓名和成績),按成績排序后輸出。stu=[{'num':'201801','name':'Wangwu','score':89},{'num':'201802','name':'Liujun','score':95},{'num':'201803','name':'Limeng','score':85}] #定義學生信息stu.sort(key=lambdax:x['score']) #按成績排序forsinstu:print('學號:',s['num'],'姓名:',s['name'],'成績:',s['score']) #輸出列表程序運行效果7.7模塊7.7.1模塊的導入7.7.2模塊的創(chuàng)建7.7.3__name__屬性7.7.4包1.導入整個模塊使用import導入整個模塊的基本格式如下:import模塊名[as別名]使用這種方式導入模塊后,調(diào)用模塊中的函數(shù)時需要在函數(shù)名前加上模塊名作為前綴:模塊名.函數(shù)名>>>importmath #導入標準庫math>>>math.sqrt(4) #求4的開方2.0例如:
提示當模塊名字很長時,可以使用語句“import模塊名as別名”為導入的模塊設(shè)置別名,然后使用“別名.函數(shù)名”的方式調(diào)用函數(shù)。>>>importrandomasr >>>r.randint(1,100) 47例如:2.導入特定的函數(shù)當我們只需要用到模塊中的某個函數(shù)時,可只導入特定的函數(shù)。from模塊名import函數(shù)名[as別名]在調(diào)用函數(shù)時,不需要使用模塊名作為前綴。>>>frommathimportsqrt #只導入模塊中的指定函數(shù)>>>sqrt(9) #調(diào)用函數(shù),求9的開方3.0>>>fromrandomimportrandintasr #給導入的函數(shù)指定別名r>>>r(1,10) #調(diào)用函數(shù),獲得[1,10]區(qū)間的隨機整數(shù)10例如:3.導入模塊中所有函數(shù)使用星號“*”可以導入模塊中的所有內(nèi)容(包括函數(shù)和變量等)。from模塊名import*這是“導入特定的函數(shù)”用法的一種極端情況,可以一次導入模塊中的所有內(nèi)容。>>>frommathimport* #導入標準庫math中的所有內(nèi)容>>>pi #常數(shù)π3.141592653589793>>>log2(8) #計算以2為底的對數(shù)值3.0>>>sqrt(16) #計算16的開方4.0例如:在Python中,每個Python文件都可以作為一個模塊,模塊的名字就是文件名。defminimal(x,y): #自定義計算較小值函數(shù)
ifx>y: #如果x>y成立,返回y的值
returnyelse: #否則返回x的值
returnx例如:現(xiàn)有一個文件“test.py”,其中定義了求較小值的函數(shù)minimal()。例:編寫程序,通過調(diào)用上述“test”模塊中的minimal()函數(shù),計算兩數(shù)中的較小值。importtest #導入test模塊a=float(input('輸入第一個數(shù)據(jù):')) #輸入a的值b=float(input('輸入第二個數(shù)據(jù):')) #輸入b的值c=test.minimal(a,b) #調(diào)用函數(shù),將較小值賦給cprint('較小值為:',c) #輸出c的值程序運行效果在實際開發(fā)過程中,開發(fā)人員為了讓模塊能夠在項目中達到想要的效果,會自行在模塊中添加測試信息。defminimal(x,y): #自定義計算較小值函數(shù)
ifx>y: #如果x>y成立,返回y的值
returnyelse: #否則返回x的值
returnx#用來測試r=minimal(2,3)print('測試2和3的較小值為:',r)例如:在“test_1.py”文件中添加測試代碼如下:例:運行以下程序,分析運行結(jié)果。importtest_1 #導入test_1模塊c=test_1.minimal(5,6) #調(diào)用函數(shù),將較小值賦給cprint('較小值為:',c) #輸出較小值c程序運行效果Python提供了一個__name__屬性,通過__name__屬性可以識別程序的使用方式:當作為模塊導入時,則其__name__屬性的值被自動設(shè)置為模塊名;如果作為程序直接運行,則其__name__屬性被自動設(shè)置為字符串“__main__”。defminimal(x,y): #自定義計算較小值函數(shù)
ifx>y: #如果x>y成立,返回y的值
returnyelse: #否則返回x的值
returnx#用來測試if__name__=='__main__': #識別當前的運行方式
r=minimal(2,3)print('測試2和3的較小值為:',r)例如:想要實現(xiàn)將“test_1.py”作為程序直接運行時,執(zhí)行測試代碼;而“test_1.py”作為模塊導入時,不執(zhí)行測試代碼,可將“test_1.py”文件中的代碼作如下修改:為了組織好模塊,通常會將多個模塊放在一個目錄中。我們將Python模塊文件所在的目錄稱為包,且該目錄下必須存在__init__.py文件(文件內(nèi)容可以為空)。package_1|——__init__.py|——module_1.py|——module_2py|——module_3pymain.py例如:有如下包結(jié)構(gòu):importpackage_1.module_1 #導入模塊package_1.module_1.f() #調(diào)用函數(shù)#也可以用以下語句實現(xiàn)frompackage_1importmodule_1 #導入模塊module_1.f() #調(diào)用函數(shù)如果main.py想要調(diào)用package_1包中模塊module_1中的f()函數(shù):7.8典型案例例:哥德巴赫猜想:每個不小于6的偶數(shù)都是兩個奇素數(shù)之和,編寫程序驗證歌德巴赫猜想對20以內(nèi)的正偶數(shù)成立。defprime(i): #定義函數(shù),判斷i是否為素數(shù)
ifi<=1: #如果小于等于1,返回0(i不是素數(shù))
return0ifi==2: #如果等于2,返回1(i是素數(shù))
return1forjinrange(2,i): #判斷i是否為素數(shù)
ifi%j==0: #i可以被j除盡,余數(shù)為0return0 #返回0,i不是素數(shù)
elifi!=j+1: #如果i不等于j+1,繼續(xù)
continueelse:return1 #否則,i等于j+1,返回1(i是素數(shù))n=0foriinrange(6,21,2):k=2whilek<=i/2:j=i-kflag1=prime(k) #調(diào)用prime函數(shù)
ifflag1: #如果k為素數(shù)
flag2=prime(j) #調(diào)用prime函數(shù)
ifflag2: #如果k和j都是素數(shù)
print(i,'=',k,'+',j) #輸出結(jié)果
n+=1k=k+1程序運行效果例:設(shè)計一個學生管理系統(tǒng),完成學生基本信息(包括學號、姓名和性別)的錄入、刪除和查看功能。stuInfos=[] #用來保存學生的所有信息defprintMenu(): #打印功能提示
print("="*20)print("學生管理系統(tǒng)V1.0")print("1.添加學生信息")print("2.刪除學生信息")print("3.顯示所有學生信息")print("0.退出系統(tǒng)")print("="*20)#添加一個學生信息defaddStuInfo():newNum=input("請輸入新學生的學號:") #提示并獲取學生的學號
newName=
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子商務運營基礎(chǔ)指南
- 投資融資居間合同模板
- 廣告公司廣告策劃與創(chuàng)意預案
- 物聯(lián)網(wǎng)技術(shù)發(fā)展趨勢研究
- 汽車維修項目可行性研究報告
- 康養(yǎng)項目可研究性報告
- 區(qū)塊鏈技術(shù)在公共服務中的應用預案
- 休閑娛樂場所拆舊協(xié)議
- 交通建設(shè)項目可行性研究報告編制辦法
- 農(nóng)業(yè)行業(yè)農(nóng)產(chǎn)品溯源與農(nóng)技服務系統(tǒng)方案
- 智慧工地及智慧工地整體方案
- 工作指導手冊
- 電梯重大活動應急預案
- 中國城市區(qū)域劃分表(超實用)
- 人教版高中地理必修一 (海水的性質(zhì))課件教學
- 北京十大景點英文介紹課件
- 2019北師大版五年級數(shù)學下冊教材分析講義課件
- 更換備胎課件
- 2、3的加法課件-學前班用
- 起重機械安全風險管控清單模板
- 遠離違法犯罪課件
評論
0/150
提交評論