python基礎之函式

2022-07-25 13:42:19 字數 2983 閱讀 5261

2,任何傳入引數和自變數必須放在圓括號中間,圓括號之間用於定義引數

3,函式的第一行語句可以選擇性的使用文件字串-用於存放函式說明

4,函式內容以冒號起始,並且縮排

5,return結束函式,選擇性地返回乙個值給呼叫方,不帶表示式的return相當返回 none

def printme( str ):

"列印傳入的字串到標準顯示裝置上"

print str

return

函式呼叫

定義乙個函式只給了函式乙個名稱,指定了函式裡包含的引數和**塊結構,這個函式的節本結構完成以後,可以通過另乙個函式呼叫執行,也可以直接從python提示符執行。

引數

可變引數

在python函式中,還可以定義可變引數,引數可以是任意個

def calc(*numbers):

sum = 0

for n in numbers:

sum = sum + n * n

return sum

關鍵字引數

可變引數允許你傳入0個或者任意個引數,這些可變引數在函式呼叫時自動組裝為乙個tuple,而關鍵字引數允許你傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict

def person(name, age, **kw):

print 'name:', name, 'age:', age, 'other:', kw

函式person除了必選引數nameage外,還接受關鍵字引數kw。在呼叫該函式時,可以只傳入必選

在python中定義函式,可以用必選引數,預設引數,可變引數和關鍵字引數,這4種引數都可以一起使用,或者只用其中某些,但是請注意,引數定義的順序必須是:必選引數,預設引數,可變引數和關鍵字引數

總結:

1,python的函式具有非常靈活的參形態,既可以實現簡單的呼叫,又可以傳入非常複雜的引數

2,預設引數一定要用於不可變物件,如果是可變物件,執行會有邏輯錯誤

3,要注意定義可變引數和關鍵字引數的語法:

*args是可變引數,args接收的是乙個tuple;

4,函式如何傳入可變引數和關鍵字引數的語法:

可變引數既可以直接傳入:func(1,2,3),又可以先組裝list或者tuple,再通過*args傳入func(*(1,2,3))

關鍵字引數既可以直接傳入:func(a=1,b=2),又可以先組裝dict,再通過**kw傳入:func(**)

作用域:作用範圍

全域性作用域:內建命名空間與全域性命名空間的名字屬於全域性範圍,

在整個檔案的任意位置都能被引用,全域性有效。

區域性作用域:函式呼叫時

閉包函式:函式內部定義的函式,成為內部函式,該內部函式包含對外部

作用域,而不是對全域性作用域名字的,那麼該函式成為閉包函式。

函式的返回值

1,指定返回值與隱含返回值

函式體中return語句有指定的返回值時,返回的就是其值

函式體中沒有retrun語句時,函式執行結束會隱含返回乙個none作為返回值型別是 nonetype,與 return 、return none 等效,都是返回 none。

2 return 語句位置與多條 return 語句

函式中使用return語句返回『返回值』,可以將其賦給其他變數作其他用處

所有函式的返回值,如果沒有return語句,會隱式地呼叫return none作為返回值

乙個函式可以存在多條return語句,但只有一條可以被執行,如果沒有一條return語句被執行,同樣會隱式呼叫 return none 作為返回值

如果有必要,可以顯示呼叫return none明確返回乙個none(空值物件)作為返回值,可以簡寫為 return,不過 python 中懶惰即美德,所以一般能不寫就不寫

如果函式執行了 return 語句,函式會立刻返回,結束呼叫,return 之後的其它語句都不會被執行了

3,返回值型別

無論定義的是返回什麼型別,return只能返回單值,但值可以存在多個元素

return[1,3,5]是至返回乙個列表,是乙個列表物件1,3,5分別是這個列表的元素

return1,3,5看是返回多個值,隱式的被python封裝成了乙個元組返回

python之函式基礎

python 函式 python函式可以返回多值 defadd dif x,y,sum x y dif x y return sum,dif a,b add dif 2,3 print a,b 5 1 r add dif 2,3 print r 5,1 本質來說返回多值的函式其實返回乙個元組tupl...

Python基礎之函式

不同型別的引數的優先順序 在引數列表中的順序 def testfunc1 pass這是乙個最簡單的函式,沒有引數,沒有返回,pass表示該函式沒有做任何操作,testfunc1是函式名,def是關鍵字,表示這是乙個函式 呼叫函式時給出函式並給函式傳遞相應的引數,對於命名關鍵字引數需要給出引數名,位置...

Python之函式(基礎)

1.函式的定義 1 函式的定義與呼叫 定義函式 def say hello print hello1 print hello2 print hello3 呼叫函式,函式只有被呼叫了才會有輸出值 示例1 定義求和函式 計算 20 30 2 函式的巢狀 def fun1 print world def ...