




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章函數(shù)與函數(shù)式編程內(nèi)置函數(shù)自定義函數(shù)與調(diào)用函數(shù)參數(shù)的傳遞變量的作用域函數(shù)的遞歸與嵌套函數(shù)式編程內(nèi)置函數(shù)自定義函數(shù)與調(diào)用函數(shù)參數(shù)的傳遞變量的作用域函數(shù)的遞歸與嵌套函數(shù)式編程掌握函數(shù)的定義與調(diào)用掌握函數(shù)的參數(shù)傳遞方式掌握函數(shù)局部變量,全局變量掌握函數(shù)遞歸及嵌套掌握函數(shù)式編程內(nèi)置函數(shù)5.15.1內(nèi)置函數(shù)Python中內(nèi)置了豐富的函數(shù)資源,可以用來進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換與類型判斷、統(tǒng)計計算、輸入/輸出操作等,使用“dir(__builtins__)”可以查看內(nèi)置函數(shù)。前面章節(jié)中使用的input()和print()就是內(nèi)置函數(shù)。語法格式:函數(shù)名(參數(shù)1,參數(shù)2,參數(shù)3,……)調(diào)用函數(shù)時,函數(shù)名后面必須加一對圓括號“()”。函數(shù)通常都有一個返回值,表示調(diào)用的結(jié)果。不同函數(shù)的參數(shù)個數(shù)不同,有的是必選的,有的是可選的。函數(shù)的參數(shù)值必須符合要求的數(shù)據(jù)類型。函數(shù)可以嵌套調(diào)用,即一個函數(shù)可以作為另一個函數(shù)的參數(shù)。自定義函數(shù)與調(diào)用
函數(shù)的定義函數(shù)的調(diào)用函數(shù)的返回值5.2什么是函數(shù)?5.2.1函數(shù)的定義5.2.1函數(shù)的定義函數(shù)是一段封裝好的、實(shí)現(xiàn)特定功能的代碼段,用戶不需要關(guān)心程序的實(shí)現(xiàn)細(xì)節(jié),可以通過函數(shù)名及其參數(shù)直接調(diào)用。Python內(nèi)置了豐富的函數(shù)資源用戶可以在程序中直接調(diào)用內(nèi)置函數(shù),程序開發(fā)人員也可以根據(jù)實(shí)際應(yīng)用需要定義函數(shù)。從而方便隨時調(diào)用,并能提高應(yīng)用程序的模塊性和代碼的復(fù)用率,增強(qiáng)了代碼的重用性和可讀性。5.2.1函數(shù)的定義Python中使用關(guān)鍵字def定義函數(shù)。函數(shù)定義的語法格式:deffunction_name(sarguments): function_blockreturn[expression]函數(shù)代碼塊以def關(guān)鍵詞開頭,后接函數(shù)標(biāo)識符名稱和圓括號()。function_name是用戶自定義的函數(shù)名稱。arguments是零個或多個參數(shù),且任何傳入?yún)?shù)必須放在圓括號內(nèi)。如果有多個參數(shù),參數(shù)間則必須用英文逗號分隔。即使沒有任何參數(shù),也必須保留一對空的圓括號。括號后邊的冒號表示縮進(jìn)的開始。最后必須跟一個冒號(:),函數(shù)體從冒號開始,并且縮進(jìn)。function_block是實(shí)現(xiàn)函數(shù)功能的語句塊。在函數(shù)體中,可以使用return語句返回函數(shù)代碼的執(zhí)行結(jié)果,返回值可以有一個或多個。如果沒有return語句,則默認(rèn)返回None(空對象)。如果想定義一個空函數(shù),可以使用pass語句作為占位符。5.2.2函數(shù)的調(diào)用調(diào)用函數(shù)也就是執(zhí)行函數(shù)。如果把創(chuàng)建的函數(shù)理解為一個具有某種用途的工具,那么調(diào)用函數(shù)就相當(dāng)于使用該工具。定義一個函數(shù),但不調(diào)用,那么這個函數(shù)中的代碼就不會運(yùn)行。調(diào)用函數(shù)的語法格式:function_name(arguments)function_name:函數(shù)名稱,要調(diào)用的函數(shù)名稱,必須是已經(jīng)創(chuàng)建好的。arguments:可選參數(shù),用于指定各個參數(shù)的值。如果需要傳遞多個參數(shù)值,則各個參數(shù)值間使用逗號“,”分隔;如果該函數(shù)沒有參數(shù),則直接寫一對小括號即可。5.2.3函數(shù)的返回值在Python中,使用return語句為函數(shù)指定返回值,將函數(shù)的處理結(jié)果返回給調(diào)用它的程序。該返回值可以是任意類型,若函數(shù)沒有返回值,可以省略return語句,return語句是函數(shù)的結(jié)束標(biāo)志。return語句的語法格式:return[value]value:可選參數(shù),用于指定要返回的值,可以返回一個或多個值。如返回一個值,result中保存的值可以為任意類型。如果返回多個值,那么在result中保存的是一個元組。當(dāng)函數(shù)中沒有return語句時,或者省略了return語句的參數(shù)時,將返回空值None。5.2.3函數(shù)的返回值例【5-1】自定義函數(shù)名稱為fun_area()的函數(shù),用于計算矩形的面積,該函數(shù)包括兩個參數(shù),分別為矩形的長和寬,返回值為的矩形面積。#計算矩形面積的函數(shù)deffun_area(width,height):ifstr(width).isdigit()andstr(height).isdigit():#驗(yàn)證數(shù)據(jù)是否合法
area=width*height#計算矩形面積
else:area=0returnarea#返回矩形的面積w=20#矩形的長h=15#矩形的寬area=fun_area(w,h)#調(diào)用函數(shù)print(area)運(yùn)行結(jié)果:300函數(shù)參數(shù)的傳遞
固定(位置)參數(shù)傳遞默認(rèn)參數(shù)傳遞未知參數(shù)個數(shù)(可變)傳遞關(guān)鍵字參數(shù)傳遞5.35.3.1固定(位置)參數(shù)傳遞直接將實(shí)參賦給形參,根據(jù)位置做匹配,即嚴(yán)格要求實(shí)參的數(shù)量與形參的數(shù)量以及位置均相同。例【5-2】定義一個名稱為fun_bmi()函數(shù),根據(jù)身高、體重計算BMI指數(shù)。要求:fun_bmi()函數(shù)包括3個參數(shù),分別用于指定姓名、身高和體重,再根據(jù)公式:BMI=體重/(身高×身高),計算BMI指數(shù),并輸出結(jié)果。deffun_bmi(person,height,weight):print(person+"的身高為:"+str(height)+"米體重:"+str(weight)+"千克")bmi=weight/(height*height)print(person+"的BMI指數(shù)為:"+str(bmi))#判斷身材是否正常
ifbmi<18.5:print("你的體重過輕!")ifbmi>=18.5andbmi<24.9:print("正常范圍,注意保持。")ifbmi>=24.9andbmi<29.9:print("你的體重過重!")ifbmi>=29.9:print("肥胖!")#函數(shù)定義fun_bmi("吳怡晴",1.78,75)運(yùn)行結(jié)果:吳怡晴的身高為:1.78米體重:75千克吳怡晴的BMI指數(shù)為:23.671253629592222正常范圍,注意保持。5.3.2默認(rèn)參數(shù)傳遞Python支持默認(rèn)值參數(shù),即在定義函數(shù)時可以為形參設(shè)置默認(rèn)值。調(diào)用帶有默認(rèn)值參數(shù)的函數(shù)時,可以通過傳遞實(shí)參替換默認(rèn)值。如果沒有給設(shè)置默認(rèn)值的形參傳值,則函數(shù)會直接使用默認(rèn)值。默認(rèn)值參數(shù)的定義格式:def函數(shù)名(…,形參名=默認(rèn)值):函數(shù)體定義函數(shù)時,默認(rèn)值參數(shù)必須出現(xiàn)在形參表的最后,即任何一個默認(rèn)值參數(shù)的右邊都不能再出現(xiàn)沒有默認(rèn)值的普通位置參數(shù),否則會提示語法錯誤。5.3.2默認(rèn)參數(shù)傳遞例【5-3】定義函數(shù)user_info(),定義時設(shè)置默認(rèn)參數(shù),調(diào)用時驗(yàn)證其功能。#定義函數(shù)defuser_info(name,age,gender='女'):print(f"您的名字是{name},年齡是{age},性別是{gender}")#調(diào)用函數(shù)user_info('Tom',20)user_info('Jack',18,'男')運(yùn)行結(jié)果:您的名字是Tom,年齡是20,性別是女您的名字是Jack,年齡是18,性別是男5.3.3未知參數(shù)個數(shù)(可變)傳遞如果函數(shù)在定義時無法確定參數(shù)的具體數(shù)目,在定義函數(shù)時可以在形參前添加“*”或“**”。通過*arg和**kwargs這兩個特殊語法可以實(shí)現(xiàn)可變長參數(shù)。*arg表示元組變長參數(shù)(參數(shù)名的前面有一個“*”),可以以元組形式接收不定長度的實(shí)參。如果想要使用一個已經(jīng)存在的列表作為函數(shù)的可變參數(shù),可以在列表的名稱前加“*”。比如:schoolname=['清華大學(xué)','北京大學(xué)','中國農(nóng)業(yè)大學(xué)']printschool(*schoolname)**kwargs表示字典變長參數(shù)(參數(shù)名的前面有兩個“*”),可以以字典形式接收不定長度的鍵值對。如果要使用一個已經(jīng)存在的字典作為函數(shù)的可變參數(shù),可以在字典的名稱前加“**”。5.3.3未知參數(shù)個數(shù)(可變)傳遞例【5-4】利用可變長參數(shù)定義函數(shù)get_score(),可以根據(jù)姓名同時查詢多人的成績。defget_score(**names):result=[]fornameinnames:score=std_sc.get(name,-1)result.append((name,score))returnresultstd_sc={'Merry':95,'Jack':76,'Rose':88,'Xinyi':65}print(get_score('Merry'))print(get_score('Jack','Rose'))print(get_score('Merry','Xinyi','Jack'))運(yùn)行結(jié)果:[('Merry',95)][('Jack',76),('Rose',88)][('Merry',95),('Xinyi',65),('Jack',76)]5.3.4關(guān)鍵字參數(shù)傳遞調(diào)用函數(shù)時,可以通過“形參名=值”的形式傳遞參數(shù),稱之為關(guān)鍵字參數(shù)。例【5-5】定義一個函數(shù)user_info(),可以通過關(guān)鍵字傳遞實(shí)際參數(shù)。defuser_info(name,age,gender):print(f"您的名字是{name},年齡是{age},性別是{gender}")#函數(shù)調(diào)用user_info('Tom',age=20,gender='女')user_info('Jack',gender='男',age=18)運(yùn)行結(jié)果:您的名字是Tom,年齡是20,性別是女您的名字是Jack,年齡是18,性別是男變量的作用域
局部變量全局變量5.45.4.1局部變量局部變量是指在函數(shù)內(nèi)部定義并使用的變量,它只在函數(shù)內(nèi)部有效。即函數(shù)內(nèi)部的變量只在函數(shù)運(yùn)行時才會創(chuàng)建,在函數(shù)運(yùn)行完畢之后,局部變量將無法進(jìn)行訪問。例【5-6】局部變量的使用示例。defmy_add(x,y):print("x="+str(x)+";"+"y="+str(y))s=x+yreturns在函數(shù)內(nèi)部定義的變量一般為局部變量,其作用范圍限定在這個函數(shù)內(nèi),當(dāng)函數(shù)執(zhí)行結(jié)束后,局部變量會自動刪除,不可以再訪問。結(jié)論5.4.2全局變量如果一個變量,在函數(shù)外定義,那么不僅在函數(shù)外部可以訪問到,在函數(shù)內(nèi)部也可以訪問到。在函數(shù)體以外定義的變量是全局變量。在函數(shù)體內(nèi)定義,使用global關(guān)鍵字修飾后,該變量也就變?yōu)槿肿兞?。在函?shù)體外也可以訪問到該變量,并且在函數(shù)體內(nèi)還可以對其進(jìn)行修改。與局部變量對應(yīng),全局變量為能夠作用于函數(shù)內(nèi)外的變量。在函數(shù)外部定義的變量稱為全局變量,其作用范圍是整個程序。全局變量可以在當(dāng)前程序及其所有函數(shù)中引用。全局變量可通過以下兩種方式定義:5.4.2全局變量例【5-7】全局變量的使用示例,其中g(shù)lobal_num是全局變量,my_add2()函數(shù)內(nèi)部定義的local_num是局部變量。defmy_add():local_num=3#局部變量
returnglobal_num+local_numglobal_num=5#全局變量print(my_add())#結(jié)果:8print(global_num)#結(jié)果:5print(local_num)#報錯,local_num沒有定義當(dāng)函數(shù)內(nèi)的局部變量和全局變量重名時,該局部變量會在自己的作用域內(nèi)暫時隱藏同名的全局變量,即局部變量起作用。結(jié)論5.4.2全局變量例【5-8】global關(guān)鍵字使用示例:在函數(shù)內(nèi)使用global關(guān)鍵字聲明了對全局變量x的操作,將其值修改為3。defmy_add4():globalx#聲明全局變量
print(x)#結(jié)果:5x=3#修改變量值
returnx+xx=5print(my_add4())#結(jié)果:6print(x)#結(jié)果:3通過global關(guān)鍵字可以在函數(shù)內(nèi)定義或者使用全局變量。如果要在函數(shù)內(nèi)部修改一個定義在函數(shù)外部的變量值,則必須使用global關(guān)鍵字將該變量聲明為全局變量,否則會自動創(chuàng)建新的局部變量。結(jié)論函數(shù)的遞歸與嵌套
函數(shù)的遞歸函數(shù)的嵌套5.55.5.1函數(shù)的遞歸程序調(diào)用自身的編程方法稱為遞歸。函數(shù)的遞歸調(diào)用是函數(shù)調(diào)用的一種特殊情況。通??梢园岩粋€大型復(fù)雜的問題層層轉(zhuǎn)化為一個與原問題相似的、規(guī)模較小的問題進(jìn)行求解,遞歸策略只需要少量的程序就可以描述出解題過程所需要的多次重復(fù)計算,大幅減少了程序的代碼量。遞歸函數(shù)具有如下特征。遞歸函數(shù)必須有一個明確的結(jié)束條件。遞歸的遞推(調(diào)用)和回歸(返回)過程,跟入棧和出棧類似。這是因?yàn)樵谟嬎銠C(jī)中,函數(shù)的調(diào)用其實(shí)就是通過棧這種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的。每調(diào)用一次函數(shù),就會執(zhí)行一次入棧,每當(dāng)函數(shù)返回,就執(zhí)行一次出棧。遞歸結(jié)構(gòu)往往消耗內(nèi)存較大,能用迭代解決的問題盡量不要用遞歸。5.5.1函數(shù)的遞歸例【5-9】利用遞歸函數(shù)計算5!。deffn(num):ifnum==1:result=1else:result=fn(num-1)*numreturnresultn=int(input("請輸入一個正整數(shù):"))print("%d!="%n,fn(n))運(yùn)行結(jié)果:請輸入一個正整數(shù):55!=1205.5.2函數(shù)的嵌套函數(shù)的嵌套是指在函數(shù)中調(diào)用另外的函數(shù)。這是函數(shù)式編程的重要結(jié)構(gòu),也是我們在編程中最常用的一種程序結(jié)構(gòu)。例【5-10】函數(shù)的嵌套調(diào)用示例。#計算三個數(shù)之和defsum_num(a,b,c):returna+b+c#求三個數(shù)平均值defaverage_num(a,b,c):sumResult=sum_num(a,b,c)returnsumResult/3result=average_num(1,2,3)print(result)運(yùn)行結(jié)果:2.0函數(shù)式編程lambda匿名函數(shù)map()函數(shù)reduce()函數(shù)filter()函數(shù)zip()函數(shù)5.65.6.1lambda匿名函數(shù)匿名函數(shù)是指不需要顯示指定函數(shù)名的函數(shù),調(diào)用一次或幾次后就不再需要的函數(shù)。Python中用lambda關(guān)鍵字通過表達(dá)式的形式定義匿名函數(shù)。lambda表達(dá)式的首要用途是指定短小的回調(diào)函數(shù)。匿名函數(shù)的語法格式:[返回的函數(shù)名]=lambda參數(shù)列表:函數(shù)返回值表達(dá)式語句函數(shù)名是可選項(xiàng)。如果沒有函數(shù)名,則表示這是一個匿名函數(shù)可以接收多個參數(shù),但只能包含一個表達(dá)式,表達(dá)式的值作為函數(shù)的返回值。表示式中不允許包含復(fù)合語句(帶冒號和縮進(jìn)的語句)。lambda表達(dá)式擁有自己的命名空間,不能訪問自有參數(shù)列表外或全局命名空間內(nèi)的參數(shù)。5.6.1lambda匿名函數(shù)例【5-11】應(yīng)用lambda表達(dá)式實(shí)現(xiàn)對商品信息按指定的規(guī)則進(jìn)行排序。假設(shè)采用爬蟲技術(shù)獲得到某商城的秒殺商品信息,并保存在列表中,現(xiàn)需要對這些信息進(jìn)行排序,排序規(guī)則是優(yōu)先按秒殺金額升序排列,有重復(fù)的,再按折扣比例降序排列。bookinfo=[('數(shù)據(jù)庫技術(shù)與應(yīng)用(MySQL版)',41.9,59),('PHP網(wǎng)站開發(fā)與設(shè)計',41.3,59),('Python程序設(shè)計基礎(chǔ)案例教程',31,49),('數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程',45,69)]print('爬取到的商品信息:\n')foriteminbookinfo:print(item)bookinfo.sort(key=lambdax:(x[1],x[1]/x[2]))#按指定規(guī)則進(jìn)行排序print('排序后的商品信息:\n')foriteminbookinfo:print(item)運(yùn)行結(jié)果:爬取到的商品信息:('數(shù)據(jù)庫技術(shù)與應(yīng)用(MySQL版)',41.9,59)('PHP網(wǎng)站開發(fā)與設(shè)計',41.3,59)('Python程序設(shè)計基礎(chǔ)案例教程',31,49)('數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程',45,69)排序后的商品信息:('Python程序設(shè)計基礎(chǔ)案例教程',31,49)('PHP網(wǎng)站開發(fā)與設(shè)計',41.3,59)('數(shù)據(jù)庫技術(shù)與應(yīng)用(MySQL版)',41.9,59)('數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程',45,69)5.6.1lambda匿名函數(shù)函數(shù)和匿名函數(shù)在簡單功能的實(shí)現(xiàn)上差別不大。當(dāng)功能帶有循環(huán)、條件、復(fù)制等多種操作時,用函數(shù)實(shí)現(xiàn)會更加有效。匿名函數(shù)只能包含一個表達(dá)式,無法表達(dá)復(fù)雜的邏輯,所以匿名函數(shù)在寫法、可理解、靈活性和功能上都差很多。與def定義的函數(shù)相比,與lambda創(chuàng)建的匿名函數(shù)區(qū)別如下:def創(chuàng)建的函數(shù)有函數(shù)名稱,lambda沒有函數(shù)名。lambda返回的結(jié)果通常為一個對象或者一個表達(dá)式lambda只是一個表達(dá)式,函數(shù)體比def簡單很多。if、while、for等語句不能用于lambda。5.6.2map()函數(shù)map()函數(shù)用于快速處理序列中的所有元素。函數(shù)需要兩個參數(shù),第一是具體處理序列的函數(shù),稱為映射函數(shù);第二是一個或多個序列。序列的數(shù)目具體須根據(jù)映射函數(shù)的需要來決定。map()對序列中每個元素進(jìn)行操作,最終獲取新的序列。map()函數(shù)的語法格式:結(jié)果序列=map(映射函數(shù),序列1[,序列2,…])5.6.2map()函數(shù)例【5-12】假設(shè)有兩個整數(shù)序列,且需要對序列中對應(yīng)的元素求和。result=map(lambdax,y:x+y,[0,1,2,3,4],[5,6,7,8,9])print("輸出map對象:\n",result)print("輸出map對象列表:\n",list(result))運(yùn)行結(jié)果:輸出map對象:
<mapobjectat0x00000000026A23C8>輸出map對象列表:
[5,7,9,11,13]map中的映射函數(shù)是由lambda表達(dá)式定義的兩個數(shù)求和,有兩個參數(shù)x,y,序列為兩個列表。5.6.3reduce()函數(shù)在Python3中,reduce()函數(shù)被放到了functools模塊中,因此在使用之前需要從functools庫中導(dǎo)入。reduce()函數(shù)接收映射函數(shù)和和一個列表對象,把函數(shù)或匿名函數(shù)依次作用在列表的兩個元素上并進(jìn)行操作,再將得到的元素與第3個元素進(jìn)行操作,以此類推得到一個結(jié)果并返回。reduce()函數(shù)可以替換for循環(huán)實(shí)現(xiàn)功能迭代計算。reduce()函數(shù)的語法格式:[結(jié)果序列=reduce(映射函數(shù),序列1[,序列2,…])reduce()函數(shù)常用于將序列中的元素從左到右依次傳遞給映射函數(shù)處理。其中映射函數(shù)為預(yù)先定義好的函數(shù)或直接由lambda定義的匿名函數(shù)表達(dá)式,函數(shù)或匿名函數(shù)必須接收2個參數(shù)??傻鷮ο鬄榭梢灾苯拥〕龅男蛄袑ο?,如列表、元組和生成器。reduce()函數(shù)首先取出序列的第1個和第2個元素作為參數(shù)傳遞給映射函數(shù),得到的返回結(jié)果與第3個參數(shù)一起作為參數(shù)傳遞給函數(shù),以此類推,直到所有的序列元素處理完畢,得到的最終結(jié)果就是reduce()函數(shù)的最終返回結(jié)果。5.6.3reduce()函數(shù)例【5-13】利用reduce()函數(shù)對序列求和。fromfunctoolsimportreduceprint(reduce(lambdax,y:x+y,[1,2,3,4]))運(yùn)行結(jié)果:10reduce()函數(shù)根據(jù)lambda表達(dá)式定義的函數(shù),將列表中的前兩個元素取出來,執(zhí)行求和操作,得到的值為“3”;然后將“3”與第三個元素“3”傳遞給lambda表達(dá)式,得到的值為“6”;以此類推,最終得到的值為列表所有元素的和“10”。5.6.4filter()函數(shù)filter()函數(shù)對序列中的元素進(jìn)行篩選,最終獲取符合條件的序列。它的使用形式和map()函數(shù)相似,由兩部分構(gòu)成,第一部分是過濾函數(shù);第二部分是待處理的序列,序列中的每個元素會依次傳遞給過濾函數(shù),filter()函數(shù)返回值為過濾函數(shù)計算結(jié)果為True的所有元素組成結(jié)果序列。filter()函數(shù)的語法格式:結(jié)果序列=filter(過濾函數(shù),序列1[,序列2,…])map()函數(shù)用于處理每個元素;reduce()函數(shù)用于全體元素的積累操作,例如累加、累減、組合等;filter()函數(shù)用于基于不同條件的過濾,如類型、數(shù)值大小、字母或數(shù)字等。結(jié)論5.6.4filter()函數(shù)例【5-14】通過filter()函數(shù)在一個列表中過濾奇數(shù)。result=filter(lambdax:x%2,[1,4,7,2,5,8,3,6,9])print("輸出filter對象:\n",result)print("輸出filter對象奇數(shù)列表:\n",list(result))運(yùn)行結(jié)果:輸出filter對象:
<filterobjectat0x0000000001D465C0>輸出filter對象奇數(shù)列表:
[1,7,5,3,9]過濾函數(shù)仍然通過lambda表達(dá)式定義,并對列表中的所有元素依次處理,最終返回filter對象“<filterobjectat0x0000000001D465C0>”。將filter對象轉(zhuǎn)換為列表,得到的結(jié)果為“[1,7,5,3,9]”。5.6.5zip()函數(shù)zip()函數(shù)對序列中的元素執(zhí)行打包操作。它將多個列表作為參數(shù),依次將對應(yīng)位置上的元素打包成元組,并且將生成的所有元組放到一個列表中返回。例【5-15】zip()函數(shù)的應(yīng)用。result=zip([0,1,2,3,4],[5,6,7,8,9])print("輸出zip對象:\n",result)print("輸出zip對象列表:\n",list(result))運(yùn)行結(jié)果:輸出zip對象:
<zipobjectat0x00000000028E96C8>輸出zip對象列表:
[(0,5),(1,6),(2,7),(3,8),(4,9)]zip()函數(shù)的語法格式:返回列表=filter(列表1[,列表2,…])綜合案例
利用函數(shù)模擬ATM的業(yè)務(wù)流程5.75.7綜合案例:利用函數(shù)模擬ATM的業(yè)務(wù)流程例【5-16】利用函數(shù),模擬ATM的業(yè)務(wù)流程。見教材運(yùn)行結(jié)果:見教材定義函數(shù)時通常需要指定若干形參,調(diào)用函數(shù)時需要通過實(shí)參傳遞數(shù)據(jù),傳遞不同的實(shí)參可以得到不同的返回結(jié)果,增加了程序的靈活性。傳遞參數(shù)時,既可以使用位置參數(shù),也可以使用關(guān)鍵字參數(shù)。關(guān)鍵字參數(shù)要求實(shí)參和形參的順序必須嚴(yán)格一致,實(shí)參和形參的數(shù)量必須
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年院前急救知識考核試題及答案解析
- 2026屆安徽省阜陽市潁州區(qū)第三中學(xué)化學(xué)高三上期末教學(xué)質(zhì)量檢測試題含解析
- 醫(yī)護(hù)部急救知識培訓(xùn)記錄課件
- 2025年文化遺產(chǎn)保護(hù)與傳承策略考試試題及解析
- 2025年文化創(chuàng)意產(chǎn)業(yè)數(shù)字營銷策略規(guī)劃研究與IP運(yùn)營經(jīng)驗(yàn)借鑒案例分析及答案
- 2025年文化創(chuàng)意產(chǎn)業(yè)管理綜合素質(zhì)測評試題及答案
- 2025年文化創(chuàng)意產(chǎn)業(yè)對經(jīng)濟(jì)增長的貢獻(xiàn)及政策倡導(dǎo)試題及答案
- 2025年文化創(chuàng)意產(chǎn)業(yè)策劃師工作能力測評試卷及答案解析
- 2025年文化產(chǎn)業(yè)發(fā)展規(guī)劃師技術(shù)認(rèn)證試題及答案解析
- 2025年網(wǎng)站運(yùn)營經(jīng)理素質(zhì)考核試題及答案
- 2025松材線蟲病枯死松樹無人機(jī)監(jiān)測技術(shù)規(guī)范
- DB65T 8001-2019 二次供水工程技術(shù)標(biāo)準(zhǔn)
- 物流公司運(yùn)營管理方案
- T/CECS 10400-2024固廢基膠凝材料
- 數(shù)字經(jīng)濟(jì)中的市場結(jié)構(gòu)變化-洞察闡釋
- 《腎衰竭患者的護(hù)理》課件
- 2025年昆明市官渡區(qū)國有資產(chǎn)投資經(jīng)營有限公司招聘筆試參考題庫含答案解析
- GB/T 1040.1-2025塑料拉伸性能的測定第1部分:總則
- 龍游縣氣象局龍游X波段雙偏振多普勒天氣雷達(dá)系統(tǒng)建設(shè)項(xiàng)目環(huán)境影響報告表
- 層次分析法在“基礎(chǔ)工程”課程成績評定中的應(yīng)用實(shí)踐
- 護(hù)士長進(jìn)修學(xué)習(xí)成果匯報與經(jīng)驗(yàn)分享
評論
0/150
提交評論