函數的定義
def <函數名>(參數)
<函數體>
return <返回值>
-函數定義時,參數是一種佔位符
-函數定義後,若不被調用,則不會被執行
-函數定義後,參數是輸入,函數體是處理,結果是輸出。
也就是說,函數是IPO的一種形式。
(函數可以有參數,也可以沒有,但必須保留函數名後的括號)
可選參數傳遞
-函數定義時可以爲某些參數指定默認值,構成可選參數
def <函數名>(非可選參數,可選參數)
<函數體>
return <返回值>
m爲可選參數,若沒有m的設置,m默認爲1
-改變參數數量的函數
def <函數名>(固定參數, *b)
<函數體>
return <返回值>
*b爲可變參數,指數量可變
參數返回值
-return保留字來傳遞返回值
-函數的返回值可有可無,return返回字也可有可無
-return可以傳遞0個返回值,也可以傳遞多個返回值
返回多個返回值時,返回的類型爲元組類型,元組類型即爲將列表類型的方括號換成小括號;
也可以如下這樣:
局部變量和全局變量
-局部變量是函數內部的佔位符,與全部變量可能重名,但不同
-函數運算結束後,局部變量被釋放
-可以使用global保留字,在函數內部使用全局變量
global保留字的用法:
-局部變量爲組合數據類型,且爲被創建,等同於全局變量
#通過使用[],真實創建了一個全局變量列表ls
ls = ["F"]
def func(a) :
#此處ls是列表類型,未真實創建,則等同於全局變量
ls.append(a)
return
#全局變量ls被修改
func("f")
print(ls)
運行結果爲: ['F', 'f'] Process finished with exit code 0
ls = ["F"]
def func(a) :
#此處ls是列表類型,是一個真實創建,則ls爲局部變量
ls = []
ls.append(a)
return
#局部變量ls被修改,全局變量ls未被修改
func("f")
print(ls)
運行結果爲:['F'] Process finished with exit code 0
lambda函數
lambda函數返回函數名作爲結果
-lambda函數是一種匿名函數,即沒有名字的函數
-使用lambda保留字定義
<函數名> = lambda <參數> : <表達式>