版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
自定義函數(shù)Python程序設(shè)計項目化教程目錄函數(shù)函數(shù)定義和調(diào)用默認(rèn)參數(shù)形式參數(shù)和實際參數(shù)目錄位置參數(shù)變量的作用域關(guān)鍵字參數(shù)可變類型參數(shù)和不可變類型參數(shù)函數(shù)Python的函數(shù)允許整合以及通用化代碼,使其能夠在之后不止在一處、不止一次地使用、也可以多次使用。Python的函數(shù)是這個語言中最基本的組成工具——它可以實現(xiàn)代碼的最大化重用和最小化代碼冗余,節(jié)省維護(hù)代碼的時間。Python的函數(shù)可以方便實現(xiàn)分解流程,提供了一種將一個系統(tǒng)分割為定義完好的不同部分的工具。print(“*”)print(“***”)print("*****")如果在一個程序的不同地方需要輸出這個圖形,每次使用print語言輸出的做法顯然不可取。函數(shù)函數(shù)具有以下特點:函數(shù)是能完成某一功能的代碼段。函數(shù)是可以重復(fù)執(zhí)行的代碼段。函數(shù)方便管理和維護(hù),便于復(fù)用。函數(shù)的定義和調(diào)用Python使用關(guān)鍵字def定義函數(shù),其后緊接函數(shù)名,括號內(nèi)包含了將要在函數(shù)體中使用的形式參數(shù)(簡稱:形參,調(diào)用函數(shù)時的為實參),以冒號結(jié)束。然后另起一行編寫函數(shù)體,函數(shù)體的縮進(jìn)為4個空格或者一個制表符。定義函數(shù)的格式如下:def函數(shù)名(參數(shù)列表):
函數(shù)體函數(shù)的定義和調(diào)用height=eval(input("請輸入你的身高(m):"))weight=eval(input("請輸入你的體重(kg):"))defgetBMI(height,weight):#定義函數(shù)getBMIBMI=weight/pow(height,2)print("BMI值為:{:.2f}".format(BMI))getBMI(height,weight)輸出結(jié)果:請輸入你的身高(m):1.72請輸入你的體重(kg):63BMI值為:21.30示例:帶參數(shù)函數(shù),計算BMI指數(shù)上述示例中height、weight為函數(shù)的參數(shù),在Python中,函數(shù)參數(shù)主要有:形式參數(shù)和實際參數(shù)、關(guān)鍵字參數(shù)、可變類型參數(shù)和不可變類型參數(shù)、位置參數(shù)、可變長度參數(shù)、默認(rèn)值參數(shù)。函數(shù)的定義和調(diào)用默認(rèn)參數(shù)調(diào)用函數(shù)時,如果沒有傳遞參數(shù),則會使用默認(rèn)參數(shù)。
defprintinfo(name,age=35): print(“Name:”,name) print(“Age:”,age)printinfo(name="miki")printinfo(age=9,name="miki")帶有默認(rèn)值的參數(shù)一定要位于參數(shù)列表的最后面。否則程序會報錯。
形式參數(shù)和實際參數(shù)形式參數(shù):在定義函數(shù)時,括號內(nèi)聲明的參數(shù)。形參本質(zhì)就是一個變量名,用來接收外部傳來的值。實際參數(shù):在調(diào)用函數(shù)時,括號內(nèi)傳入的值,值可以是常量、變量、表達(dá)式或三者的組合。示例:函數(shù)的形式參數(shù)和位置參數(shù)。defcustom_power(a):print(a*a)b=5custom_power(b)輸出結(jié)果:25實例中,a就是形式參數(shù),b就是實際參數(shù)。在調(diào)用函數(shù)時,實參值(變量的值)會賦值給形參(變量名),兩者的綁定關(guān)系只在函數(shù)調(diào)用時才會生效,在調(diào)用函數(shù)結(jié)束后就立刻接觸綁定位置參數(shù)位置參數(shù)就是實際參數(shù)和形式參數(shù)進(jìn)行按照位置一一對應(yīng)的方式進(jìn)行傳遞參數(shù)。調(diào)用函數(shù)時傳入實際參數(shù)的數(shù)量和位置都必須和定義函數(shù)時保持一致。示例:函數(shù)的位置參數(shù)。defadd(x,y):returnx+ysum=add(20,100)print(sum)輸出結(jié)果:120上述示例中add函數(shù)有兩個參數(shù),第一個參數(shù)是x,第二個參數(shù)是y,傳入的兩個整數(shù)20和100,按照位置順序依次賦給函數(shù)的參數(shù)x和y,參數(shù)x和參數(shù)y被稱為位置參數(shù)。位置參數(shù)中傳遞的參數(shù)個數(shù)必須等于參數(shù)列表的數(shù)量,根據(jù)函數(shù)定義的參數(shù)位置來傳遞參數(shù),要求傳遞的參數(shù)與函數(shù)定義的參數(shù)兩者一一對應(yīng),如果“傳遞的參數(shù)個數(shù)”不等于“函數(shù)定義的參數(shù)個數(shù)”,運行時會報錯。關(guān)鍵字參數(shù)關(guān)鍵字參數(shù)就是以“形參”=“實參”的形式去指定的,不受傳遞參數(shù)的位置的影響。包含關(guān)鍵字參數(shù)的函數(shù)語法格式:def函數(shù)(**kwargs):函數(shù)體在參數(shù)前加上符號**參數(shù)表示函數(shù)可以接收關(guān)鍵字參數(shù),kwargs的類型是字典,調(diào)用該函數(shù)時,所有的關(guān)鍵字參數(shù)被合并成一個字典,合并后的字典被賦值給kwargs,通過訪問kwargs可以訪問參數(shù)名和參數(shù)值。關(guān)鍵字參數(shù)示例:函數(shù)的關(guān)鍵字參數(shù)。defcreate_address(**kwargs):print(kwargs)create_address(address1="北京",address2="上海",address3="武漢")輸出結(jié)果:{'address1':'北京','address2':'上海','address3':'武漢'}可變類型參數(shù)和不可變類型參數(shù)Python函數(shù)參數(shù)對于可變對象,函數(shù)內(nèi)對參數(shù)的改變會影響到原始對象;對于不可變對象,函數(shù)內(nèi)對參數(shù)的改變不會影響到原始參數(shù)。原因在于:可變對象,參數(shù)改變的是可變對象,其內(nèi)容可以被修改。不可變對象,改變的是函數(shù)內(nèi)變量的指向?qū)ο?。可變類型參?shù)。Python中自定義函數(shù)利用*args接受實際參數(shù)傳遞參數(shù)的時候會轉(zhuǎn)化為元組的形式,利用**kwargs接受實際參數(shù)傳遞參數(shù)的時候會轉(zhuǎn)化為字典的形式,其中*args可變長度參數(shù),可傳也可以不傳,并且長度沒有做任何限制,會統(tǒng)一的打包成元組??勺冾愋蛥?shù)和不可變類型參數(shù)示例:定義函數(shù)利用*args接收參數(shù)。deftest(*args):print(args)print(type(args))test("beijing",100,200,300,"北京")輸出結(jié)果:('beijing',100,200,300,'北京')<class'tuple'>可變類型參數(shù)和不可變類型參數(shù)示例:定義函數(shù)利用*args接收參數(shù)。deftest(*args,b=200,c="beijing"):print(args)print(b)print(c)test("wuhan",1,2,3,b=50,c=80)輸出結(jié)果:('wuhan',1,2,3)5080可變類型參數(shù)和不可變類型參數(shù)**kwargs可變長度參數(shù),可傳也可以不傳,并且長度沒有做任何限制,會統(tǒng)一的打包成字典,實參傳需要傳入鍵值對,然后形參會將它打包成字典。示例:定義函數(shù)利用**kwargs接受參數(shù)deffirst_tier_cities(**kwargs):print(kwargs)print(type(kwargs))first_tier_cities(a="上海",b="北京",c="深圳",d="廣州")輸出結(jié)果:{'a':'上海','b':'北京','c':'深圳','d':'廣州'}<class'dict'>變量的作用域為了避免變量的名稱發(fā)生沖突,所以Python引入了命名空間的概念。命名空間指的是名稱到對象的映射,類似于字典,鍵名是變量的名字,值是變量的值。
命名空間是相互獨立存在的,而且它們被安排在某個特定的層次,把這些層次結(jié)構(gòu)組合起來就是作用域。本地作用域函數(shù)嵌套作用域文件作用域內(nèi)置作用域
變量的作用域1.局部變量所謂局
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年食品安全合同書
- 2024影視道具租賃合同參考范本
- 工程承包合同示例文本
- 2024舉辦合同培訓(xùn)班的通知
- 2024年度銷售合同智能家居產(chǎn)品銷售合同(04版)
- 2024蔬菜超市采購合同
- 2024年度安全設(shè)備維護(hù)及更新改造合同
- 農(nóng)村新建住宅協(xié)議書
- 2024天臺縣花生種植收購合同樣書
- 2024工業(yè)生產(chǎn)廠房租賃合同范本
- 液化石油氣充裝操作規(guī)程(YSP118液化石油氣鋼瓶)
- 工程樣板過程驗收單
- 顱內(nèi)動脈動脈瘤介入治療臨床路徑
- 糧食倉儲場建設(shè)項目可行性研究報告
- 珠寶銷貨登記表Excel模板
- 深基坑開挖施工風(fēng)險源辨識與評價及應(yīng)對措施
- 唯美手繪風(fēng)花藝插花基礎(chǔ)培訓(xùn)PPT模板課件
- 《現(xiàn)代漢語語法》PPT課件(完整版)
- 5G智慧農(nóng)業(yè)建設(shè)方案
- 航海學(xué)天文定位第四篇天文航海第1、2章
- 浙江大學(xué)學(xué)生社團(tuán)手冊(08)
評論
0/150
提交評論