python總結函式 Python函式之簡單總結

2021-10-11 00:12:08 字數 2067 閱讀 1913

函式的定義

python的函式定義使用關鍵字def,如定義乙個返回絕對值的函式my_abs1

5def my_abs(x):

if x>=0:

return x

else:

return -x

函式呼叫

引數錯誤

如果在呼叫函式時,傳給函式的引數增多或減少,python直譯器都會檢查出來

typeerror:提示my_abs()只需乙個引數,但是呼叫時給了兩個

雖然python直譯器能檢查到引數個數的變化,但當給函式乙個非法型別的引數時,就無法準確檢測到

直譯器雖然給出了錯誤,但是沒有定義具體是哪種錯誤

引數型別檢查

python提供了內建函式isinstance()來判斷引數的資料型別1

7def my_abs(x):

if not isinstance(x, (int,float)):

raise typeerror('wrong type......')

if x >= 0:

return x

else:

return -x

改寫了my_abs函式後,如果傳參不是int或float型別,則會報錯並給出錯誤資訊'wrong type'

函式的引數

python的函式定義雖然相對簡單,但是引數種類非常靈活。如正常的必須引數,還有預設引數、可變引數以及關鍵字引數

位置引數

即必須引數,在傳參時按照函式定義的順序賦給函式1

6def power(x, n):

s= 1

while n >0:

n= n- 1

s= s* x

return s

定義乙個函式power()來求x的n次方,在呼叫時根據函式定義的順序傳參。不同的位置順序得到不同的結果

預設引數

同其他程式語言一樣,python在定義函式時可通過設定預設引數來避免因某些引數沒有傳入而導致的錯誤

如power(x, n),如果沒有傳入引數n則會引起錯誤

直譯器提示power()缺少乙個必須的引數n。來使用預設引數來改進一下power函式1

6def power(x, n=2):

s= 1

while n >0:

n= n- 1

s= s* x

return s

兩種形式的函式呼叫都能正常執行,這正是因為預設函式的作用。當引數都給全時,函式按照給定的引數進行運算;當引數n未傳入時,函式按照設定的預設引數進行運算

可變引數

可變引數即引數的個數是可變的,在定義函式時,無需乙個乙個的給定1

5def add(*numbers):

sum = 0

for nin numbers:

sum = sum + n

return sum

定義乙個add函式用來計算引數的和

通過可變引數,我們可以傳入任意個引數來呼叫函式進行運算

關鍵字引數

不同於可變引數,關鍵字引數允許傳入0或任意個含引數名的引數,這些關鍵字引數在函式內部自動組合成dict1

2def student(name, age,**args):

print('name: ', name,'age: ', age,'other: ', args)

**args:代表傳入的是關鍵字引數

命名關鍵字引數

上述student函式可以接收除name,age外的任意引數,但是如果需要限制接收的引數就要用到命名關鍵字引數

假設對於student資訊還只需要乙個city資訊,可以改寫student函式如下1

2def student(name, age,*, city):

print(name, age, city)

執行結果如下

命名關鍵字引數必須傳入引數名,這和位置引數不同。如果沒有傳入引數名,呼叫將報錯

函式定義中已經有了乙個可變引數,後面跟著的命名關鍵字引數就不再需要乙個特殊分隔符*了,如1

2def student(name, age,*args, city):

print(name, age, args, city)

python簡述定義函式的規則 python 函式

一.定義函式 函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段 函式能提高應用的模組性,和 的重複利用率 函式式 將某功能 封裝到函式中,日後便無需重複編寫,僅呼叫函式即可 物件導向 對函式進行分類和封裝,讓開發 更快更好更強.函式式程式設計最重要的是增強 的重用性和可讀性 1.定義函...

pytho函式星號引數

神奇的星號 傳遞實參和定義形參 所謂實參就是呼叫函式時傳入的引數,形參則是定義函式是定義的引數 的時候,你還可以使用兩個特殊的語法 呼叫函式時使用 test args 的作用其實就是把序列 args 中的每個元素,當作位置引數傳進去。比如上面這個 如果 args 等於 1,2,3 那麼這個 就等價於...

python class函式報錯 Python類

建立乙個類 class person pass p person print p 類以class 宣告 self變數 這個定義與c 的this指標,都是指向物件示例本身,但使用起來是不一樣的。可以看到函式定義的時候,都要帶乙個self引數。這是因為python直譯器會預設將物件本身作為引數傳入函式。...