函式是組織好的可重複使用的,用來實現單一或相關聯功能的**段
函式能提高應用的模組性和**的重複利用率
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...