Python基礎9 自定義函式

2021-10-24 11:24:37 字數 4124 閱讀 8909

函式是組織好的可重複使用的,用來實現單一或相關聯功能的**段

函式能提高應用的模組性和**的重複利用率

python提供了許多內建函式,比如print()

也可以自己建立函式,即自定義函式

自定義函式的建立和呼叫

>>> # 不帶引數的自定義函式

>>> def sayhi():

... print ("hi")

...>>> # 呼叫函式

>>> sayhi()

hi>>> # 帶引數的自定義函式

>>> def sayhello(varname):

... print ("hello",varname,"!")

...>>> # 呼叫函式

>>> sayhello('tina')

hello tina !

引數

>>> # 必需引數要以正確的順序傳入函式,呼叫時的數量必須和宣告時的一樣(不一致時會 報錯)

>>> def ********are(base, high):

... s = 1/2*(base*high)

... return s

...>>> m=5

>>> n=3

>>> print ("底邊=" + str(m) + ",高=" + str(n) + "的三角形面積為:",********are(m,n))

底邊=5,高=3的三角形面積為: 7.5

>>> # 使用關鍵字引數允許函式呼叫時引數的順序與宣告時不一致

>>> def empinfo(empno, empname, age):

... print ("員工編號:",empno)

... print ("員工姓名:",empname)

... print ("年齡:",age)

...>>> # 若傳遞引數時不按順序傳遞,會出現資料混亂

>>> empinfo('tina', 30, '002')

員工編號: tina

員工姓名: 30

年齡: 002

>>> # 使用關鍵字引數傳遞方式可不按順序傳遞

>>> empinfo(empname='tina', age=30, empno='002')

員工編號: 002

員工姓名: tina

年齡: 30

>>> # 在呼叫函式時,如果沒有傳遞引數則使用預設引數

>>> def empinfo(empno, empname, age=25):

... print ("員工編號:",empno)

... print ("員工姓名:",empname)

... print ("年齡:",age)

...>>> # 呼叫時傳遞引數

>>> empinfo(empname='tina', age=30, empno='002')

員工編號: 002

員工姓名: tina

年齡: 30

>>> # 呼叫時不傳遞引數

>>> empinfo(empname='tina', empno='002')

員工編號: 002

員工姓名: tina

年齡: 25

>>> # 不定長引數(加了星號*的引數會以元組(tuple)的形式匯入,存放所有未命名的變數 引數)

>>> def paratuple(fixvar,*indefinvar):

... print (fixvar)

... print (indefinvar)

...>>> # 呼叫引數(傳入多個引數)

>>> paratuple(1,2,3,4,5,6)

1(2, 3, 4, 5, 6)

>>> # 不定長引數(加了兩個星號**的引數會以字典的形式匯入)

>>> def paradict(fixvar,**indefinvar):

... print (fixvar)

... print (indefinvar)

...>>> # 呼叫引數(傳入多個引數)

>>> paradict(1,var1=2,var2=3,var3=4,var4=5,var5=6)

1>>> # '*'後面的引數必須使用關鍵字引數形式

>>> def funpara(parvar1, *, parvar2, parvar3):

... print (parvar1, parvar2, parvar3)

...>>> # 呼叫函式

>>> funpara(10,20,30)

traceback (most recent call last):

file "", line 1, in typeerror: funpara() takes 1 positional argument but 3 were given

>>> funpara(10,parvar2=20,parvar3=30)

10 20 30

>>> # '/'前面的引數必須使用指定位置引數,不能使用關鍵字引數形式(3.8新增)

>>> def funparameter(parvar1, parvar2, /, parvar3, parvar4):

... print (parvar1, parvar2, parvar3, parvar4)

...>>> # 呼叫函式

>>> funparameter(parvar1=10,20,30,40)

file "", line 1

syntaxerror: positional argument follows keyword argument

>>> funparameter(10,20,30,40)

10 20 30 40

匿名函式

* python使用lambda來建立匿名函式

* lambda的主體是乙個表示式,而不是乙個**塊

* lambda函式擁有自己的命名空間,且不能訪問自己引數列表之外或全域性命名空間裡的引數

>>> # 定義匿名函式

>>> sum = lambda firnum, secnum: firnum + secnum

>>> # 呼叫函式

>>> print ("兩數之和為:",sum(2,3))

兩數之和為: 5

return語句

return語句用於退出函式,選擇性的返回乙個表示式(不帶引數值的return語句返回none)

>>> # 帶引數值的return

>>> def funsum(firnum, secnum):

... sumnum = firnum + secnum

... print ("輸出結果:", sumnum)

... return sumnum

...>>> # 直接呼叫函式

>>> funsum(12,13)

輸出結果: 25

25>>> # 接收函式返回值

>>> resum = funsum(12,13)

輸出結果: 25

>>> print ("函式的返回結果為:", resum)

函式的返回結果為: 25

>>> # 不帶引數值的return

>>> def funsum(firnum, secnum):

... sumnum = firnum + secnum

... print ("輸出結果:", sumnum)

... return

...>>> # 直接呼叫函式

>>> funsum(12,13)

輸出結果: 25

>>> # 接收函式返回值

>>> resum = funsum(12,13)

輸出結果: 25

>>> print ("函式的返回結果為:", resum)

函式的返回結果為: none

Python自定義函式基礎概念

一 函式定義語法 def 函式名 形參列表 語句塊函式定義語句 def 語句 的完整語法 裝飾器1 裝飾器2 def 函式名 位置形參 元組形參 命名關鍵字形參 字典形參 文件字串 語句塊 注 中括號代表其內部可以省略 二 函式文件字串 函式內第一次未被賦值給任何變數的字串是此函式的文件字串。說明 ...

python基礎之函式(自定義函式)

函式 函式的定義 初中數學函式定義 一般的,在乙個變化過程中,如果有兩個變數x和y,並且對於x的每乙個確定的值,y都有唯一確定的值與其對應,那麼我們就把x稱為自變數,把y稱為因變數,y是x的函式。自變數x的取值範圍叫做這個函式的定義域,程式語言中函式定義 函式是邏輯結構化和過程化的一種程式設計方法。...

Python自定義函式

可選引數是python的乙個特性,顧名思義就是這個引數是可有可沒有的。如果你學過其他的語言,那麼你會很清楚明白他的不同點的。def fun n,m 1 s 1for i in range 1 n 1 s i return s m m就是可選引數,如果在呼叫他的時候不給m就預設為1 eg1 fun 1...