欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

函數(shù)基礎-創(chuàng)新互聯(lián)

函數(shù)

函數(shù)由若干語句組成的語句塊、函數(shù)名、參數(shù)列表構成。它是組織代碼的最小單元
目的:為了完成一定的功能

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比府谷網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式府谷網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋府谷地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
  • 函數(shù)的作用
    結(jié)構化編程對代碼最基本的封裝,一般按照功能組織一段代碼
    封裝是為了復用,減少冗余代碼
    代碼更見簡潔美觀、可讀易懂
  • 函數(shù)的分類
    內(nèi)建函數(shù)、庫函數(shù)
  • 函數(shù)的定義、調(diào)用 例子:
    def 函數(shù)名(參數(shù)列表): def add(x,y)
    函數(shù)體(代碼塊) result = x+y
    [ return 返回值 ] return result
    out = add(4,5)
    print(out)
    函數(shù)的返回值可以用變量接收
    函數(shù)名也是標識符,命名要求一樣 可看成一個變量
    定義需要在調(diào)用之前,調(diào)用的時候,需要函數(shù)已經(jīng)定義,否則會拋出NameError
    函數(shù)是可調(diào)用對象,callable 用來判斷 某對象是否是 函數(shù) 在測試時不能待用函數(shù),調(diào)用后會將返回值 放入callable()來進行檢測 ,則返回 False 用已造成結(jié)果不準確
    語句塊必須縮進
    python的函數(shù)沒有return語句,隱式會返回一個Neno值
    定義中的參數(shù)列表成為形式參數(shù),只有一種符號表達,簡稱形參
    調(diào)用
    函數(shù)定義,知識聲明了一個函數(shù),它不會被執(zhí)行,需要調(diào)用
    調(diào)用的方式,函數(shù)名加上小括號,括號內(nèi)是參數(shù)
    調(diào)用時寫的參數(shù)是實際參數(shù),是是在子啊傳入的值,簡稱實參
    函數(shù)參數(shù)
    參數(shù)調(diào)用時傳入的參數(shù)要和定義的個數(shù)匹配(可變參數(shù)列外)
    位置參數(shù)
    def f(x,y,z) 調(diào)用使用f(1,3,5) 按位置一一對應傳入實參
    按照參數(shù)定義順序傳入實參
    關鍵字參數(shù)
    def f(x,y,z) 調(diào)用使用 f(x=1,y=3,z=5)
    使用形參的名字來輸入實參的方式,如果使用了形參名字,那么傳參順序可以發(fā)生變化
    傳參
    格式嚴格
    要求位置參數(shù)必須在關鍵字參數(shù)之前傳入,位置參數(shù)是按位置對應的
    參數(shù)默認值(缺省值)

定義時,在形參后跟上一個值
缺省參數(shù)不指定,且傳參時沒有傳參則引起報錯
作用
參數(shù)的默認值可以在未傳入足夠的實參的時候,對沒有給定的參數(shù)賦值為默認值
參數(shù)非常多的時候,并不需要用戶都輸入所有參數(shù),可以簡化函數(shù)調(diào)用

定義參數(shù)時:非缺省參數(shù)不能放在缺省參數(shù)之后,否則會報錯

位置參數(shù)的可變參數(shù) (可變位置參數(shù)args 盡可能多的收集位置參數(shù)) 類型是元祖
在形參之前使用
表示該形參是可變參數(shù),可以就收多個實參
收集多個實參為一個tuple
可變位置參數(shù)不允許使用關鍵字傳參方式傳入
關鍵字參數(shù)的可變參數(shù) (可變關鍵字參數(shù)kwargs 盡可能多的收集關鍵字參數(shù)) 類型字典 數(shù)據(jù)可以被修改
形參之前使用
符號,表示可以接收多個關鍵字參數(shù)
收集的實參名稱和值組成一個字典
可變位置參數(shù)不允許使用關鍵字傳參方式傳入
關鍵字傳參時不允許出現(xiàn)重復的key,否則直接報錯SyntaxError
可變參數(shù)混合使用

def add(*nums):
print(type(nums),nums)
sum = 0
for i in nums:
sum += i
return sum

add(),add({1,2,3}),add((1,2,3)),add(*[1,2,3]),add(1,2,3,4,5)

<class 'tuple'> ()
<class 'tuple'> (1, 2, 3)
<class 'tuple'> (1, 2, 3)
<class 'tuple'> (1, 2, 3)
<class 'tuple'> (1, 2, 3, 4, 5)

可變參數(shù)總結(jié)
有位置可變參數(shù)和關鍵字可變參數(shù)
位置可變參數(shù)在形參之前使用一個星號*
關鍵字可變參數(shù)在形參之前使用兩個星號**
位置可變參數(shù)和關鍵字可變參數(shù)都可以收集若干個實參,位置可變參數(shù)收集行形成一個tuple,關鍵字可變參數(shù)收集形成一個dict
混合使用參數(shù)時,可變參數(shù)要放到參數(shù)列表的最后,普通參數(shù)需要放到參數(shù)列表之前,位置可變參數(shù)需要在關鍵字可變參數(shù)之前
參數(shù)默認值(缺省值)

keyword-only參數(shù)
如果在一個星號參數(shù)后,或者一個位置可變參數(shù)后,出現(xiàn)普通的參數(shù),實際上已經(jīng)不是普通參數(shù)了,而是keyword-only參數(shù)
當*args后面出現(xiàn) keyword參數(shù)時,現(xiàn)在的keyword變成了 keyword-only 參數(shù) 必須要有參數(shù)出傳入,否則報錯TypeError

*args已經(jīng)將所有的位置參數(shù)全部收集,而后面的keyword-only收集不到實參,產(chǎn)生報錯
位置參數(shù)、keyword-only可以設置缺省值,以免發(fā)生漏傳報錯
當有位置參數(shù),且沒有指定缺省值時,必須傳入實參,否則報錯 且 實參與位置形參個數(shù)要對應
參數(shù)規(guī)則
參數(shù)列表一般順序:位置參數(shù)、帶有缺省值的位置參數(shù)、可變位置參數(shù)、keyword-only參數(shù)(可帶缺省值的keyword-only參數(shù))、可變關鍵字參數(shù)

參數(shù)的結(jié)構
參數(shù)結(jié)構,顧名思義,只能用在參數(shù)部分
給函數(shù)提供實參時,可以在集合類型前使用*或則*,把集合類型的結(jié)構解開,提取里面的每個元素作為函數(shù)的實參
非字典類型使用
號解構將類型轉(zhuǎn)換成位置參數(shù)
字典類型使用**解構 將類型解構成關鍵字參數(shù),提取到字典來的vaalue值
提取出來的元素數(shù)目要和參數(shù)的要求匹配,也要和參數(shù)的類型匹配

函數(shù)的返回值與作用域
python函數(shù)使用return語句返回——“返回值”
所有函數(shù)都有返回值,沒有return語句,隱式會調(diào)用return Neno
return 語句并不一定是函數(shù)的語句塊的最后一條語句
一個函數(shù)可以存在多個return語句,但是只有一條可以被執(zhí)行。如果沒有return語句被執(zhí)行,隱式調(diào)用return Neno
如果有必要,可以顯示調(diào)用return Neno,可簡寫為return
如果函數(shù)執(zhí)行了return語句,函數(shù)就會返回,當前被執(zhí)行的return語句之后的語句就不會被執(zhí)行
作用:
結(jié)束函數(shù),返回——返回值

返回多個值
return 只能返回一個值,當你向返回多個值時,python 會以一種方式將其封裝為一個元素返回
函數(shù)不能同時返回多個值
return 1,2,3 看似返回多個值,其實隱式被python 轉(zhuǎn)換為了一個元組
x,y,z = showlist()#使用解構提取更為方便

函數(shù)的嵌套和作用域
在函數(shù)中定義另外一個函數(shù)叫做嵌套
函數(shù)有可見范圍,這就是作用于的概念
內(nèi)部函數(shù)不能再外部直接使用,會拋出NameError異常,因為在外部直接找不大該函數(shù) 不可見
作用域
一個標識符的可見范圍,這就是標識符的作用域范圍。一般說是變量的作用域

全局作用域
在整個程序運行環(huán)境中都可見
局部作用域
在函數(shù)、類等內(nèi)部可見
局部變量時候用范圍不能超過其所在的局部作用域
global全局變量
使用關鍵字global的變量,將 函數(shù) 內(nèi)的聲明變量 聲明為使用那個外部的全局變量
全局作用域中,必須要有 變量的定義
賦值即定義,在內(nèi)部作用域為一個外部作用域的的比那領賦值,不實在內(nèi)部作用域定義一個洗呢變量,而是將新賦值的變量作用在全局,這里的變量作用域還是全局作用域
global總結(jié)
x+=1這種特殊形式產(chǎn)生的錯誤
x = x+1 當前x屬于賦值狀態(tài),此時的x并沒有值,等號是先算右邊在賦值,此時的等號左邊x沒有值,沒有值的情況下+1 在賦值給x 顯然是不正確的,故在x += 1 時出現(xiàn)了報錯
是因為,先引用后賦值產(chǎn)生的,而python動態(tài)語言是賦值才算定義,才能被引用。解決辦法,在語句全增加一句輔助語句即可,或者使用global告訴內(nèi)部作用域,去全局作用域查找變量定義
內(nèi)部作用域使用的 變量 賦值語句 會重新定義局部作用域使用的變量,但是,一旦這個作用域中使用global聲明的變量為 全局的,那么相當于 在為全局作用域的變量賦值

global使用原則
外部作用域變量會在內(nèi)部作用域可見,但也不雅在這個內(nèi)部的局部作用于中被直接使用,因為函數(shù)的目的就是為了封裝,盡可能與外界隔離
如果函數(shù)需要使用外部全局變量,請使用函數(shù)的形參傳參解決
一句話:不用global
閉包
自由變量:
未在本地作用域定義的變量 即定義在內(nèi)層函數(shù)之外的 外層函數(shù)作用域中的變量
閉包
就是一個概念,出現(xiàn)在嵌套函數(shù)中
內(nèi)層函數(shù)引用了外層函數(shù)的自由變量,從而形成了閉包

使用global可以解決,但是這使用的是全局變量,而不是閉包
如果對普通變量閉包,python3 可以使用nonlocal
nonlocal關鍵字
使用nonlocal關鍵字,將變量標記為不再本地作用域定義,而在上級的某一級局部作用域中定義,但不能是全局作用域中的定義

默認值作用域
默認值的值是引用的它們在內(nèi)存中的地址
當默認值的值為非引用類型時,他們的值是不變的。當他們?yōu)橐妙愋蜁r,它們指向的是其內(nèi)存中的地址,其中的值會發(fā)生變化,它們的默認值地址并沒有發(fā)生變化,還是引用的那個內(nèi)存地址。這是的默認值就會發(fā)生變化

函數(shù)地址并沒有變,就是說函數(shù)這個對象沒有變,調(diào)用它,它的屬性defaultz在使用元祖保存默認值
xyz默認值是引用類型,引用類型元素的變動,并不是元組的變化
屬性defaults中使用元組保存所有位置參數(shù)默認值,它不會因為在函數(shù)體內(nèi)使用了它而發(fā)生變化
屬性defaults中使用元組保存所有位置參數(shù)默認值
屬性kwdefaults中使用字典保存所有keyword-only參數(shù)的默認值

使用默認值的方法
一:使用影子拷貝創(chuàng)建一個新的對象,永遠不能改變傳入的參數(shù)
二:通過值得判斷就可以領過選擇創(chuàng)建或者修改傳入對象
這種方式,靈活、被廣泛應用
很多函數(shù)的定義,都可以看到適應None這個不可變的值作為默認參數(shù),這是一種慣用法

變量名解析原則LEGB
local,本地作用域,局部作用域的local命名空間。函數(shù)調(diào)用時創(chuàng)建,調(diào)用結(jié)束消亡
Enclosing,實現(xiàn)了閉包,這個就是嵌套函數(shù)的外部函數(shù)的命名空間
Global全局作用域,即一個模塊的命名空間,模塊被import時,創(chuàng)建,解釋器退出時消亡
Build-in,內(nèi)置模塊的命名空間,生命周期從python解釋器啟動時創(chuàng)建到解釋器退出時消亡
顧名思義 LEGB就是其查找的順序,就近原則

函數(shù)的銷毀
全局函數(shù)銷毀
重新定義同名函數(shù)、del語句刪除函數(shù)對象、程序結(jié)束時
局部函數(shù)銷毀
重新在上級作用域定義同名函數(shù)、del語句刪除函數(shù)名,函數(shù)對象的引用計數(shù)減1、上級作用域銷毀時

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)站名稱:函數(shù)基礎-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://aaarwkj.com/article40/cocgeo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、標簽優(yōu)化App設計、網(wǎng)站維護小程序開發(fā)、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
中文字幕日韩欧美资源站| 国产精品黄色自拍合集| 国产成人精品视频午夜蜜蜂| 欧美系列诱惑性国产精品| 最新日韩人妻中文字幕一区| 国产一区二区三区的网站| 久久久国产精品视频一区| 国产一区二区黄色网页| 国产日韩熟女中文字幕| 国产成人福利视频在线观看| 久久女同互慰一区二区三区| 神马免费午夜福利剧场| 午夜理论片在线观看有码| 欧美日韩国产福利在线观看| 天天操夜夜操白天操晚上操 | 成人午夜激情四射av| 亚洲午夜福利啪啪啪| 久久精品国产亚洲av蜜点| 日韩欧美国产综合一区二区| 精品视频偷拍一区二区三区| 欧美日韩亚洲精品一区二区三区| 色哟哟免费在线观看视频| 欧美日韩国产特级性生活| 99热在线播放精品观看| 欧美三级在线完整版免费| 欧美国产日韩激情在线| 国产原创av剧情六区| 婷婷亚洲悠悠色悠在线| 日本免费精品一区二区三区四区| 国产三级在线dvd观看| 欧美日韩一区精品视频| 极品女神福利视频久久| 丰满多毛熟妇的大阴户| 国产精品av国产精华液| 亚洲国产成人精品av在线| 激情视频一区二区三区| 亚洲一区二区美女av| 亚洲成人午夜激情的三级网| 色噜噜噜欧美人妻色综合| 中文字幕三级电影天堂| 国产欧美日韩在线高清|