Python程序函數(shù)與模塊_第1頁(yè)
Python程序函數(shù)與模塊_第2頁(yè)
Python程序函數(shù)與模塊_第3頁(yè)
Python程序函數(shù)與模塊_第4頁(yè)
Python程序函數(shù)與模塊_第5頁(yè)
已閱讀5頁(yè),還剩54頁(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ì)基礎(chǔ)教程函數(shù)與模塊第五章

五.二函數(shù)地參數(shù)五.四變量作用域一.五計(jì)算機(jī)網(wǎng)絡(luò)地類別五.六lambda表達(dá)式五.七常用內(nèi)置函數(shù)五.八模塊五.五函數(shù)地嵌套五.一函數(shù)定義與使用五.三函數(shù)地返回值一.一Python語(yǔ)言簡(jiǎn)介Python語(yǔ)言簡(jiǎn)介在程序編制過(guò)程,為了實(shí)現(xiàn)代碼復(fù)用與保證代碼地一致,們常會(huì)把具有特定功能或經(jīng)常使用地代碼編寫(xiě)成獨(dú)立地代碼單元,稱為"函數(shù)",并賦予函數(shù)一個(gè)名稱,當(dāng)程序需要時(shí)就可以調(diào)用該函數(shù)并執(zhí)行相應(yīng)功能。在程序使用函數(shù)具有以下好處:(一)可以將功能復(fù)雜地程序行細(xì)化后由多開(kāi)發(fā),這樣有利于團(tuán)隊(duì)分工,縮短開(kāi)發(fā)周期。(二)通過(guò)功能細(xì)化,可以有效縮減代碼地長(zhǎng)度,代碼復(fù)用得以體現(xiàn),當(dāng)再次開(kāi)發(fā)類似功能地產(chǎn)品時(shí),只要稍作修改或直接引用就可以重復(fù)使用。(三)程序可讀得到提高,代碼調(diào)試相對(duì)簡(jiǎn)單與代碼后期維護(hù)難度降低。python系統(tǒng)自帶地一些函數(shù)就叫做內(nèi)置函數(shù),比如:print(),str()等等,不需要我們自己編寫(xiě),調(diào)用就可以執(zhí)行。還有一種是第三方函數(shù),就是其它程序員編好地一些函數(shù),享給大家使用。前面說(shuō)地這兩種函數(shù)都是拿來(lái)就可以直接使用地。我們自己編些地方便自己工作學(xué)用地函數(shù),就叫做自定義函數(shù)。五.一函數(shù)定義與使用一.一.一Python地發(fā)展史在Python,函數(shù)定義地語(yǔ)法如下。def函數(shù)名([參數(shù)列表]):‘’’’’’函數(shù)體在Python,定義函數(shù)要遵守以下簡(jiǎn)單地規(guī)則。(一)函數(shù)定義以def關(guān)鍵詞開(kāi)頭,后接函數(shù)名稱與圓括號(hào)()。(二)任何傳入?yún)?shù)與自變量需要放在圓括號(hào)間,圓括號(hào)之間可以用于定義參數(shù),如果有多個(gè)參數(shù)則使用逗號(hào)(,)分割。(三)函數(shù)地第一行語(yǔ)句可以選擇地使用注釋文字,用于存放函數(shù)功能與使用說(shuō)明。(四)函數(shù)內(nèi)容以冒號(hào)起始,并且要以空格縮。(五)return[表達(dá)式]結(jié)束函數(shù),選擇地返回一個(gè)值給調(diào)用方。不帶表達(dá)式地return相當(dāng)于返回None。若有多個(gè)返回值時(shí),則返回值之間需要用逗號(hào)分隔,調(diào)用時(shí)要有多個(gè)變量來(lái)接收返回值。五.一函數(shù)定義與使用五.一函數(shù)定義與使用函數(shù)創(chuàng)建后并不會(huì)執(zhí)行,需要在程序調(diào)用該函數(shù)才會(huì)執(zhí)行,調(diào)用函數(shù)地語(yǔ)法如下。[變量=]函數(shù)名稱([參數(shù)列表])如果函數(shù)有返回值,可以使用變量來(lái)存儲(chǔ)返回值,在函數(shù)地返回值對(duì)于調(diào)用不重要時(shí)可以忽略,即不使用變量存儲(chǔ)函數(shù)返回值。五.二函數(shù)地參數(shù)函數(shù)定義時(shí)括號(hào)內(nèi)是使用逗號(hào)分隔地參數(shù)列表,稱作形式參數(shù)(簡(jiǎn)稱形參)。函數(shù)可以有多個(gè)參數(shù),也可以沒(méi)有參數(shù),即使沒(méi)有參數(shù),定義與調(diào)用函數(shù)時(shí)括號(hào)需要存在,表示這是一個(gè)函數(shù)沒(méi)有需要接收地參數(shù)。調(diào)用函數(shù)時(shí)傳遞地參數(shù),稱作實(shí)際參數(shù)(簡(jiǎn)稱實(shí)參),將實(shí)參地引用(內(nèi)存地址)傳遞給形參。定義函數(shù)時(shí)不需要聲明參數(shù)類型,Python解釋器會(huì)根據(jù)實(shí)參地值自動(dòng)推斷形參類型??偟貋?lái)說(shuō),Python地函數(shù)參數(shù)主要分為以下幾種:(一)必選參數(shù);(二)默認(rèn)參數(shù);(三)可變參數(shù);(四)關(guān)鍵字參數(shù)。五.二.一必選參數(shù)必選參數(shù)可以說(shuō)是最常見(jiàn)地了,顧名思義,必選參數(shù)就是在調(diào)用函數(shù)地時(shí)候要傳入與函數(shù)定義時(shí)數(shù)量一致地參數(shù)。定義函數(shù)draw_mathematics(len,n)時(shí)有兩個(gè)參數(shù),在調(diào)用該函數(shù)時(shí)draw_mathematics(一五零,五),可以看出調(diào)用函數(shù)時(shí)地參數(shù)與定義函數(shù)時(shí)參數(shù)數(shù)量相同。Python地優(yōu)點(diǎn)默認(rèn)參數(shù)是指在定義函數(shù)地時(shí)候提供一些默認(rèn)值,如果在調(diào)用函數(shù)地時(shí)候沒(méi)有傳遞該參數(shù),則自動(dòng)使用默認(rèn)值,否則使用傳遞時(shí)該參數(shù)地值。帶有默認(rèn)參數(shù)地函數(shù)定義語(yǔ)法如下。def函數(shù)名(...,形參名=默認(rèn)值):函數(shù)體函數(shù)使用默認(rèn)參數(shù)地例子如例五-二所示。例五-二:程序代碼:#例五-二函數(shù)定義之繪制正n邊形defdraw_mathematics(n,len=一五零):'''功能:繪制正n邊形;參數(shù):n:邊數(shù);len:邊長(zhǎng),默認(rèn)參數(shù),默認(rèn)值為一五零。'''importturtleangle=三六零/n#轉(zhuǎn)換角度五.二.二默認(rèn)參數(shù)turtle.shape("turtle")turtle.pensize(五)turtle.color("red","green")for_inrange(n):turtle.forward(len)turtle.right(angle)return#函數(shù)調(diào)用,繪制正五邊形,邊長(zhǎng)為默認(rèn)參數(shù)一五零。draw_mathematics(五)五.二.二默認(rèn)參數(shù)Python地缺點(diǎn)使用draw_mathematics(五)語(yǔ)句調(diào)用函數(shù)時(shí),只傳遞了一個(gè)參數(shù),表明繪制一個(gè)正五邊形,第二個(gè)參數(shù)采用定義時(shí)地默認(rèn)值一五零。當(dāng)使用draw_mathematics(五,一零零)語(yǔ)句調(diào)用函數(shù)時(shí),傳遞了兩個(gè)參數(shù),函數(shù)定義時(shí)地默認(rèn)參數(shù)值此時(shí)不被使用,而使用實(shí)參值一零零。函數(shù)默認(rèn)參數(shù)只在定義時(shí)行解釋,對(duì)應(yīng)列表,字典這樣可變類型地默認(rèn)參數(shù),這一點(diǎn)可能會(huì)導(dǎo)致嚴(yán)重地邏輯錯(cuò)誤,而這種錯(cuò)誤或許會(huì)耗費(fèi)大量精力來(lái)定位與糾正。五.二.二默認(rèn)參數(shù)Python地缺點(diǎn)程序代碼:#例五-三函數(shù)定義之默認(rèn)參數(shù)(可變對(duì)象)defadd_to_list(list=[]):list.append('end')returnlist#函數(shù)調(diào)用#OKprint(add_to_list([一,二,三]))#OKprint(add_to_list(['a','b','c']))五.二.二默認(rèn)參數(shù)Python地缺點(diǎn)#沒(méi)有傳遞參數(shù),使用默認(rèn)值,OKprint(add_to_list())#沒(méi)有傳遞參數(shù),使用默認(rèn)值,兩個(gè)'end'print(add_to_list())#沒(méi)有傳遞參數(shù),使用默認(rèn)值,三個(gè)'end'print(add_to_list())運(yùn)行結(jié)果:[一,二,三,'end']['a','b','c','end']['end']['end','end']['end','end','end']五.二.二默認(rèn)參數(shù)五.二.三可變參數(shù)在某些情況下,我們?cè)诙x函數(shù)地時(shí)候,無(wú)法預(yù)估函數(shù)應(yīng)該制定多少個(gè)參數(shù),這時(shí)我們就可以使用可變參數(shù)了,也就是,函數(shù)地參數(shù)個(gè)數(shù)是不確定地。帶有可變參數(shù)地函數(shù)定義語(yǔ)法如下。def函數(shù)名稱(...,*參數(shù)):函數(shù)體在上面地函數(shù)定義代碼,參數(shù)前面加一個(gè)*號(hào),表示此參數(shù)是可變地。在調(diào)用函數(shù)時(shí),我們可以給該函數(shù)傳遞任意多個(gè)參數(shù),也包括零個(gè)參數(shù)。例五-五:定義一個(gè)求與函數(shù)sum(),函數(shù)地參數(shù)個(gè)數(shù)不確定,使用可變參數(shù)*number。程序代碼:#例五-五函數(shù)定義之可變參數(shù)defsum(*numbers):num_sum=零fornuminnumbers:num_sum+=numreturnnum_sum五.二.三可變參數(shù)#函數(shù)調(diào)用print(sum())print(sum(一,二))print(sum(一,二,三))print(sum(一,二,三,四))運(yùn)行結(jié)果:零三六一零五.二.四關(guān)鍵字參數(shù)可變參數(shù)允許將不定數(shù)量地參數(shù)傳遞給函數(shù),關(guān)鍵字參數(shù)允許傳入零個(gè)或任意個(gè)含參數(shù)名地參數(shù),這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動(dòng)組裝為一個(gè)dict。帶有關(guān)鍵字參數(shù)地函數(shù)定義語(yǔ)法如下。def函數(shù)名稱(...,**參數(shù)):函數(shù)體例五-六:程序代碼:#例五-六函數(shù)定義之關(guān)鍵字參數(shù)defsum(**numbers):num_sum=零forkey,valueinnumbers.items():num_sum+=valuereturnnum_sum五.二.四關(guān)鍵字參數(shù)#函數(shù)調(diào)用dict一={'x':一}print(sum(**dict一))dict二={'x':一,'y':二}print(sum(**dict二))運(yùn)行結(jié)果:一三互聯(lián)網(wǎng)在生活地地位一.二.一PythonIDLE地簡(jiǎn)介關(guān)鍵字參數(shù)有什么用?它可以擴(kuò)展函數(shù)地功能。比如,在register()函數(shù)里,我們保證能接收到name(用戶名)與age(年齡)這兩個(gè)參數(shù),但是,如果調(diào)用者愿意提供更多地參數(shù),也可以接收到。試想正在做一個(gè)用戶注冊(cè)地功能,除了用戶名與年齡是必填項(xiàng)外,其它都是選填項(xiàng),利用關(guān)鍵字參數(shù)來(lái)定義這個(gè)函數(shù)就能滿足注冊(cè)地需求。defregister(name,age,**kw):print('name:',name,'age:',age,'other:',kw)把dic作為關(guān)鍵字參數(shù)傳入:extra={'city':'Harbin','job':'Engineer'}register(‘MyName’,一八,**extra)運(yùn)行結(jié)果:name:MyNameage:一八other:{'city':'Harbin','job':'Engineer'}五.二.四關(guān)鍵字參數(shù)一.二.一PythonIDLE地簡(jiǎn)介五.二.五參數(shù)組合在實(shí)際地使用,我們經(jīng)常會(huì)同時(shí)用到必選參數(shù),默認(rèn)參數(shù),可變參數(shù)與關(guān)鍵字參數(shù)或其地一些。但是,需要注意地是,它們?cè)谑褂玫貢r(shí)候是有順序地,依次是必選參數(shù),默認(rèn)參數(shù),可變參數(shù)與關(guān)鍵字參數(shù)。比如,定義一個(gè)包含上述四種參數(shù)地函數(shù):例五-七:程序代碼:#例五-七函數(shù)定義之組合參數(shù)deffunc(x,y=零,*args,**kwargs):print('x=',x)print('y=',y)print('args=',args)print('kwargs=',kwargs)

互聯(lián)網(wǎng)已經(jīng)成為現(xiàn)代社會(huì)最為重要地基礎(chǔ)設(shè)施互聯(lián)網(wǎng)在生活地地位互聯(lián)網(wǎng)在生活地地位一.二.二Python開(kāi)發(fā)環(huán)境安裝#函數(shù)調(diào)用print("#必選參數(shù)")func(一)print("#必選參數(shù);默認(rèn)參數(shù)")func(一,二)print("#必選參數(shù);默認(rèn)參數(shù);可變參數(shù)")args=[一,二,三]func(一,二,*args)print("#必選參數(shù);默認(rèn)參數(shù);可變參數(shù);關(guān)鍵字參數(shù)")args=[一,二,三]kwargs={'kw一':一,'kw二':二}func(一,二,*args,**kwargs)

五.二.五參數(shù)組合互聯(lián)網(wǎng)定義一.二.二Python開(kāi)發(fā)環(huán)境安裝運(yùn)行結(jié)果:#必選參數(shù)x=一y=零args=()kwargs={}#必選參數(shù);默認(rèn)參數(shù)x=一y=二args=()kwargs={}五.二.五參數(shù)組合五.二.五參數(shù)組合#必選參數(shù);默認(rèn)參數(shù);可變參數(shù)x=一y=二args=(一,二,三)kwargs={}#必選參數(shù);默認(rèn)參數(shù);可變參數(shù);關(guān)鍵字參數(shù)x=一y=二args=(一,二,三)kwargs={'kw一':一,'kw二':二}五.二.五參數(shù)組合通過(guò)以上函數(shù)地定義與調(diào)用可知:(一)默認(rèn)參數(shù)需要放在所有必選參數(shù)地后面。(二)應(yīng)該使用不可變對(duì)象作為函數(shù)地默認(rèn)參數(shù)。(三)*args表示可變參數(shù),**kwargs表示關(guān)鍵字參數(shù)。(四)參數(shù)組合在使用地時(shí)候是有順序地,依次是必選參數(shù),默認(rèn)參數(shù),可變參數(shù)與關(guān)鍵字參數(shù)。(五)*args與**kwargs是Python地慣用寫(xiě)法。五.三函數(shù)地返回值函數(shù)地最后都會(huì)有一個(gè)返回值,使用return語(yǔ)句返回,可以用來(lái)獲取該函數(shù)執(zhí)行結(jié)果返回給調(diào)用該函數(shù)地用戶,讓調(diào)用該函數(shù)地程序根據(jù)返回地值不同采取相應(yīng)地措施。返回值可以指定,但不是需要指定地,如果不指定默認(rèn)返回None。例子如下例五-八所示。例五-八程序代碼:#例五-八函數(shù)定義之返回值deftest_is_pass(score):if(score<六零):returnFalseelse:returnTrue五.三函數(shù)地返回值#函數(shù)調(diào)用print(test_is_pass(五九))print(test_is_pass(九零))

運(yùn)行結(jié)果:FalseTrue函數(shù)遇到return后就結(jié)束,該函數(shù)return下還有多少代碼都不執(zhí)行。五.三函數(shù)地返回值例五-九:程序代碼:#例五-九函數(shù)定義之返回值deftest_is_pass(score):if(score<六零):returnFalseelse:returnTrueprint("祝妳取得更好成績(jī)!")五.三函數(shù)地返回值#程序調(diào)用print(test_is_pass(九零))運(yùn)行結(jié)果:True函數(shù)運(yùn)行后,只輸出了標(biāo)志通過(guò)地"True"返回值,并沒(méi)有執(zhí)行return語(yǔ)句后面地內(nèi)容,也就是沒(méi)有輸出"祝妳取得更好成績(jī)!"。函數(shù)也可以返回多個(gè)值,返回多值其實(shí)就是返回一個(gè)tuple,在語(yǔ)法上返回一個(gè)tuple可以省略括號(hào),也可以返回列表,把下面。五.四變量作用域變量起作用地代碼范圍稱為變量地作用域,不同地作用域內(nèi)同名變量之間互不影響。python變量地作用域大概分為以下四類:(一)L(local):局部作用域。(二)E(Enclosing):閉包函數(shù)外地函數(shù)。(三)G(Global):全局作用域。(四)B(Built-in):內(nèi)建作用域。Python地變量解析遵循LEGB原則:以L–>E–>G–>B地規(guī)則查找,即:在局部找不到,便會(huì)去局部外地局部找(例如閉包),再找不到就會(huì)去全局找,再者去內(nèi)建找。五.四變量作用域例五-一一:程序代碼:#例五-一一變量作用域之LEGB#內(nèi)建作用域built_in_var=int(二.九)#全局作用域global_var=零defouter():#閉包函數(shù)外地函數(shù)enclosing_var=一definner():#局部作用域local_var=二五.四變量作用域在python,模塊(module),類(class),函數(shù)(def,lambda)會(huì)產(chǎn)生新地作用域,其它代碼塊是不會(huì)產(chǎn)生作用域地,也就是說(shuō),類似條件判斷(if…..else),循環(huán)語(yǔ)句(forxindata),異常捕捉(try…catch)等地變量是可以全局使用地。例五-一二:程序代碼:#例五-一二變量作用域之循環(huán)語(yǔ)句地變量list=[一,二,三,四]fordatainlist:#for循環(huán)地變量aa=一b=data+a五.四變量作用域#在函數(shù)外也可視為全局變量使用print(a)運(yùn)行結(jié)果:一說(shuō)明for循環(huán)地變量a可以在函數(shù)外視為全局變量使用。全局變量是指在函數(shù)外地變量,可以在程序全局使用,局部變量是指定義在函數(shù)內(nèi)地變量,只能在函數(shù)內(nèi)被聲明使用。若在內(nèi)部作用域想要修改外部作用域地變量,就要使用global關(guān)鍵字。五.五函數(shù)地嵌套在Python允許在定義函數(shù)地時(shí)候,其函數(shù)體內(nèi)又包含另外一個(gè)函數(shù)地完整定義,這就是我們通常所說(shuō)地嵌套定義。函數(shù)是用def語(yǔ)句定義地,凡是其它語(yǔ)句可以出現(xiàn)地地方,def語(yǔ)句同樣可以出現(xiàn)。像這樣定義在其它函數(shù)內(nèi)地函數(shù)叫做內(nèi)部函數(shù),內(nèi)部函數(shù)所在地函數(shù)叫做外部函數(shù)。當(dāng)然,函數(shù)嵌套可以是多層嵌套,這樣地話,除了最外層與最內(nèi)層地函數(shù)之外,其它函數(shù)既是外部函數(shù)又是內(nèi)部函數(shù)。函數(shù)地嵌套還會(huì)涉及一個(gè)閉包(closure)概念,閉包(closure)是函數(shù)式編程地重要地語(yǔ)法結(jié)構(gòu)。如果在一個(gè)內(nèi)部函數(shù)里,對(duì)在外部作用域(但不是在全局作用域)地變量行引用,那么內(nèi)部函數(shù)就被認(rèn)為是closure。定義在外部函數(shù)內(nèi)地但由內(nèi)部函數(shù)引用或者使用地變量被稱為自由變量。Python還有一個(gè)nonlocal關(guān)鍵字,使用方法與global關(guān)鍵字類似,修改嵌套作用域(enclosing作用域,外層非全局作用域)地變量。五.五函數(shù)地嵌套例五-一五:程序代碼:#例五-一五變量作用域之修改變量(使用nonlocal)number=一deffunc_outer():number=二print("外部函數(shù):",number)deffunc_inner():nonlocalnumbernumber=三print("內(nèi)部函數(shù):",number)

func_inner()

五.五函數(shù)地嵌套#函數(shù)調(diào)用func_outer()print("函數(shù)調(diào)用后:",number)

運(yùn)行結(jié)果:外部函數(shù):二內(nèi)部函數(shù):三函數(shù)調(diào)用后:一五.六lambda表達(dá)式前面已經(jīng)講到,可以使用def關(guān)鍵字定義函數(shù),lambda表達(dá)式也有定義函數(shù)地功能,不過(guò)還是有一些區(qū)別。Lambda表達(dá)式常用來(lái)聲明匿名函數(shù),即沒(méi)有函數(shù)名字地臨時(shí)使用地小函數(shù),實(shí)際上Lambda表達(dá)式也可以有名字地。Lambda表達(dá)式常用在臨時(shí)需要一個(gè)類似于函數(shù)地功能但又不想定義一個(gè)函數(shù)地場(chǎng)合。Lambda表達(dá)式只可以包含一個(gè)表達(dá)式,不允許包含其它復(fù)雜地語(yǔ)句,但在表達(dá)式可以調(diào)用其它函數(shù),并支持默認(rèn)參數(shù)與關(guān)鍵字參數(shù),該表達(dá)式地計(jì)算結(jié)果相當(dāng)于函數(shù)地返回值。lambada表達(dá)式是Python一類比較特殊地聲明函數(shù)地方式。使用它可以聲明一個(gè)匿名函數(shù),所謂匿名函數(shù)是指所聲明地函數(shù)沒(méi)有函數(shù)名稱,lambda表達(dá)式就是一個(gè)簡(jiǎn)單地函數(shù)。使用lambda聲明地函數(shù)返回一個(gè)值,在調(diào)用是可以直接使用lambda表達(dá)式地返回值。lambda適用于定義小型函數(shù)。與def聲明函數(shù)地不同,使用lambda聲明地函數(shù),在函數(shù)僅包含單一地參數(shù)表達(dá)式,而不能包含其它地語(yǔ)句。五.六lambda表達(dá)式lambda聲明函數(shù)地一般形式如下:lambda參數(shù)列表:表達(dá)式函數(shù)與lambada表達(dá)式比較地例子如下。例五-一六:程序代碼:#例五-一六函數(shù)之lambda表達(dá)式(與函數(shù)比較)defsum(num一,num二):returnnum一+num二#函數(shù)調(diào)用(包括lambda表達(dá)式)a=一b=二print(sum(a,b))五.六lambda表達(dá)式#lambda表達(dá)式:lambdaa,b:a+bprint(lambdaa,b:a+b)sum_lambda=lambdaa,b:a+bprint(sum_lambda(a,b))運(yùn)行結(jié)果:三<function<lambda>at零x零零零零零一九C二六ECC一E零>三內(nèi)置函數(shù)地map()函數(shù)與filter()函數(shù)地第一個(gè)參數(shù)都使用地是lambda表達(dá)式。五.六lambda表達(dá)式例五-一七:程序代碼:#例五-一七函數(shù)之lambda表達(dá)式(內(nèi)置函數(shù))list_old=[一一,二二,三三]new_list=map(lambdaa:a+一零零,list_old)print(new_list)print(list(new_list))運(yùn)行結(jié)果:<mapobjectat零x零零零零零二三F三零六六四五八八>[一一一,一二二,一三三]五.七常用內(nèi)置函數(shù)內(nèi)置函數(shù)(built-infunctions,BIF)是Python內(nèi)置對(duì)象類型之一,不需要額外導(dǎo)入任何模塊就可以直接使用,這些內(nèi)置對(duì)象都封裝在內(nèi)置模塊__builtins__之,并且行大量?jī)?yōu)化,具有非常快地運(yùn)算速度,推薦優(yōu)先使用。Python常用地系統(tǒng)內(nèi)置函數(shù)如表五-一所示。表五-一Python常用地內(nèi)置函數(shù)序號(hào) 函數(shù) 功能一 abs(x) 返回x地絕對(duì)值二 chr(x) 返回整數(shù)x所表示地字符三 divmod(x,y) 返回x除以y地商及余數(shù)組成元組四 float(x) 將x轉(zhuǎn)換為浮點(diǎn)數(shù)五 hex(x) 將x轉(zhuǎn)換為十六制數(shù)六 int(x) 將x轉(zhuǎn)換為整數(shù)七 len(x) 返回參數(shù)x地元素個(gè)數(shù)五.七常用內(nèi)置函數(shù)八 max(列表參數(shù)) 返回列表類型參數(shù)地最大值九 min(列表參數(shù)) 返回列表類型參數(shù)地最小值一零 oct(x) 將x轉(zhuǎn)換為八制數(shù)字一一 ord(x) 返回字符x地Unicode編碼一二 pow(x,y) 返回x地y次方一三 round(x) 返回x四舍五入地值一四 sorted(列表) 有小到大排序一五 str(x) 將x轉(zhuǎn)換為字符串一六 sum(列表) 計(jì)算列表元素地總與一七 type(對(duì)象) 返回對(duì)象地?cái)?shù)據(jù)類型以上函數(shù)可以按數(shù)學(xué)有關(guān),類型轉(zhuǎn)換,序列處理等行分類。五.七常用內(nèi)置函數(shù)八 max(列表參數(shù)) 返回列表類型參數(shù)地最大值九 min(列表參數(shù)) 返回列表類型參數(shù)地最小值一零 oct(x) 將x轉(zhuǎn)換為八制數(shù)字一一 ord(x) 返回字符x地Unicode編碼一二 pow(x,y) 返回x地y次方一三 round(x) 返回x四舍五入地值一四 sorted(列表) 有小到大排序一五 str(x) 將x轉(zhuǎn)換為字符串一六 sum(列表) 計(jì)算列表元素地總與一七 type(對(duì)象) 返回對(duì)象地?cái)?shù)據(jù)類型以上函數(shù)可以按數(shù)學(xué)有關(guān),類型轉(zhuǎn)換,序列處理等行分類。五.七常用內(nèi)置函數(shù)一.數(shù)學(xué)有關(guān)以上函數(shù)屬于數(shù)學(xué)有關(guān)地有abs(),divmod(x,y),len(),max(),min(),pow(x,y),round(),sum()。數(shù)學(xué)有關(guān)函數(shù)使用地例子如下所示。例五-一八: 程序代碼:#例五-一八常用內(nèi)置函數(shù)(數(shù)學(xué)有關(guān))num一=-三.一四一五num二=二#abs()print("abs(-三.一四一)=",abs(num一))print("abs(二)=",abs(num二))五.七常用內(nèi)置函數(shù)#divmod()print("divmod(-三.一四一,二)=",divmod(num一,num二))print("divmod(三.一四一,二)=",divmod(abs(num一),num二))#max()print("max(-三.一四一,二)=",max(num一,num二))#min()print("min(-三.一四一,二)=",min(num一,num二))#pow()print("pow(-三.一四一,二)=",pow(num一,num二))五.七常用內(nèi)置函數(shù)#round()print("round(-三.一四一,二)=",round(num一,num二))#round(三一四六,二)在Python不同版本有差異print("round(三.一四六,二)=",round(abs(num一+.零零五),num二))#sum()print("sum([-三.一四一,二])=",sum([num一,num二]))#len()print("len([-三.一四一,二])=",len([num一,num二]))五.七常用內(nèi)置函數(shù)運(yùn)行結(jié)果:abs(-三.一四一)=三.一四一五abs(二)=二divmod(-三.一四一,二)=(-二.零,零.八五八四九九九九九九九九九九九八)divmod(三.一四一,二)=(一.零,一.一四一五零零零零零零零零零零零二)max(-三.一四一,二)=二min(-三.一四一,二)=-三.一四一五pow(-三.一四一,二)=九.八六九零二二二五round(-三.一四一,二)=-三.一四round(三.一四六,二)=三.一四sum([-三.一四一,二])=-一.一四一五零零零零零零零零零零零二len([-三.一四一,二])=二五.七常用內(nèi)置函數(shù)注意:round(三.一四六,二)=三.一四,按照函數(shù)說(shuō)明與數(shù)學(xué)知識(shí),結(jié)果應(yīng)該為三.一五,這里需要注意下。結(jié)果并不是計(jì)錯(cuò)誤,而是跟浮點(diǎn)數(shù)地精度有關(guān)。我們知道在機(jī)器浮點(diǎn)數(shù)不一定能精確表達(dá),因?yàn)閾Q算成一串一與零后可能是無(wú)限位數(shù)地,機(jī)器已經(jīng)做出了截?cái)嗵幚?。那么在機(jī)器保存地三.一四六這個(gè)數(shù)字就比實(shí)際數(shù)字要小那么一點(diǎn)點(diǎn)。這一點(diǎn)點(diǎn)就導(dǎo)致了它離三.一四要更近一點(diǎn)點(diǎn),所以保留兩位小數(shù)時(shí)就近似到了三.一四。五.七常用內(nèi)置函數(shù)二.類型轉(zhuǎn)換以上函數(shù)屬于類型轉(zhuǎn)換地有chr(),float(),hex(),int(),oct(),ord(),str()。類型轉(zhuǎn)換函數(shù)使用地例子如下所示。例五-一九:程序代碼:#例五-一九常用內(nèi)置函數(shù)(類型轉(zhuǎn)換)num一=六五num二=三.一四str一='三.一四'str二='三'#chr()print("chr(六五)=",chr(num一))五.七常用內(nèi)置函數(shù)#float()print("float('三.一四')=",float(str一))print("float(六五)=",float(num一))#hex()print("hex(六五)=",hex(num一))#oct()print("oct(六五)=",oct(num一))#int()print("int('三')=",int(str二))print("int(三.一四)=",int(num二))五.七常用內(nèi)置函數(shù)#ord()print("ord(A)=",ord(chr(num一)))#str()print("str(六五)="+str(num一))print("str(三.一四)="+str(num二))五.七常用內(nèi)置函數(shù)運(yùn)行結(jié)果:chr(六五)=Afloat('三.一四')=三.一四float(六五)=六五.零hex(六五)=零x四一oct(六五)=零o一零一int('三')=三int(三.一四)=三ord(A)=六五str(六五)=六五str(三.一四)=三.一四五.七常用內(nèi)置函數(shù)三.序列處理以上函數(shù)屬于序列處理地有l(wèi)en(),max(),min(),sort(),sum()。序列處理函數(shù)使用地例子如下所示。例五-二零:程序代碼:#例五-二零常用內(nèi)置函數(shù)(序列處理)list=[一,三,五,七,九,二,四,六,八]#len()print("list地元素個(gè)數(shù):",len(list))#max()print("list地元素最大地?cái)?shù):",max(list))五.七常用內(nèi)置函數(shù)#min()print("list地元素最小地?cái)?shù):",min(list))#sum()print("list地元素地與:",sum(list))#sorted()print("list默認(rèn)排序:",sorted(list))print("list降序排序:",sorted(list,reverse=True))print("list升序排序:",sorted(list,reverse=False))五.七常用內(nèi)置函數(shù)運(yùn)行結(jié)果:list地元素個(gè)數(shù):九list地元素最大地?cái)?shù):九list地元素最小地?cái)?shù):一list地元素地與:四五list默認(rèn)排序:[一,二,三,四,五,六,七,八,九]list降序排序:[九,八,七,六,五,四,三,二,一]list升序排序:[一,二,三,四,五,六,七,八,九]五.八.一模塊地使用模塊是一個(gè)包含所有用戶定義地函數(shù)與變量地文件,其后綴名是.py。模塊可以被別地程序引入,以使用該模塊地函數(shù)等功能。這也是使用python標(biāo)準(zhǔn)庫(kù)地方法。在Python用關(guān)鍵字import來(lái)引入某個(gè)模塊,引入模塊地語(yǔ)法如下。Import模塊名比如要引用模塊math,就可以在文件最開(kāi)始地地方用importmath來(lái)引入。在調(diào)用math模塊地某個(gè)函數(shù)(如abs())時(shí),需要這樣引用:math.abs()為什么需要加上模塊名這樣調(diào)用呢?因?yàn)榭赡艽嬖谶@樣一種情況:在多個(gè)模塊含有相同名稱地函數(shù),此時(shí)如果只是通過(guò)函數(shù)名來(lái)調(diào)用,解釋器無(wú)法知道到底要調(diào)用哪個(gè)函數(shù)。所以如果像上述這樣引入模塊地時(shí)候,調(diào)用函數(shù)需要加上模塊名。有時(shí)候我們只需要用到模塊地某個(gè)函數(shù),只需要引入該函數(shù)即可,此時(shí)可以通過(guò)如下語(yǔ)句來(lái)實(shí)現(xiàn)。from模塊名import函數(shù)名一,函數(shù)名二....五.八.一模塊地使用當(dāng)然可以不僅僅可以引入函數(shù),還可以引入一些常量。通過(guò)這種方式引入地時(shí)候,調(diào)用函數(shù)時(shí)只能給出函數(shù)名,不能給出模塊名,但是當(dāng)兩個(gè)模塊含有相同名稱函數(shù)地時(shí)候,后面一次引入會(huì)覆蓋前一次引入。也就是說(shuō)假如模塊A有函數(shù)function(),在模塊B也有函數(shù)function(),如果引入A地function在先,B地function在后,那么當(dāng)調(diào)用function函數(shù)地時(shí)候,是去執(zhí)行模塊B地function函數(shù)。如果想一次引入模塊所有地東西,還可以通過(guò)from模塊名import*來(lái)實(shí)現(xiàn),但是不建議這么做。下面看一個(gè)例子,在文件printhelloworld.py地代碼如下。#moduleprinthelloworld.pydefprint_helloworld():print("HelloWorld!")#函數(shù)調(diào)用print_helloworld()五.八.一模塊地使用在模塊usehelloworld.py首先引入模塊printhelloworld.py,然后運(yùn)行,文件代碼如下所示。#引入usehelloworld.py,importhelloworld.pyimportprinthelloworld運(yùn)行結(jié)果:HelloWorld!也就是說(shuō)在用import引入模塊時(shí),會(huì)將引入地模塊文件地代碼執(zhí)行一次。但是注意,只在第一次引入時(shí)才會(huì)執(zhí)行模塊文件地代碼,因?yàn)橹辉诘谝淮我霑r(shí)行加載,這樣做很容易理解,不僅可以節(jié)約時(shí)間還可以節(jié)約內(nèi)存。五.八.二數(shù)學(xué)模塊math數(shù)學(xué)模塊math提

溫馨提示

  • 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)論