① 是什麼 函式是一段具有特定功能、可重用的語句組,是一種功能的抽象。
② 作用 降低程式設計難度和**復用
③ 怎麼用
def 《函式名》(《引數(0個或多個)>):
《函式體》
return 《返回值》
說明:-函式定義時,所指定的引數是一種佔位符
-函式定義後,不經呼叫,不會被執行
-函式定義時,引數是輸入、函式體是處理、結果是輸出(ipo)
呼叫:執行函式**的方式
呼叫時要給出實際引數,替換定義中的引數
呼叫後得到實際引數執行的返回值
① 無引數
函式可以無引數,但定義時括號不可省略
② 可選引數
函式定義時可以為某些引數指定預設值,構成可選引數(即呼叫函式時,可以不提供的引數)
注意:python強制約定所有可選引數必須放在必選引數之後
例:
def
fact
(n,m=1)
: s =
1for i in
range(1
,n+1):
s *= i
return s//m
a = fact(4)
print
(a)b = fact(4,
2)print
(b)
③ 可變引數
格式def 《函式名》(《引數》,*b):
《函式體》
return 《返回值》
例
deffact
(n,*b)
: s =
1for i in
range(1
,n+1):
s *= i
for item in b:
s *= item
return s
a = fact(10,
3)print
(a)b = fact(10,
3,5,
8)print
(b)
④ 引數傳遞的兩種方式
預設:按照位置傳遞
另:按照名稱傳遞
例
def
fact
(n,m=1)
: s =
1for i in
range(1
,n+1):
s *= i
return s//m
a = fact(10,
5)#位置傳遞
print
(a)b = fact(m=
5,n=10)
#名稱傳遞
print
(b)
函式可以返回0個或多個結果
-return後面可以不加任何返回資訊,也可以不使用return
例
def
fact
(n,m=1)
: s =
1for i in
range(1
,n+1):
s *= i
return s//m,n,m
a,b,c = fact(10,
5)print
(a,b,c)
d = fact(10,
5)print
(d)輸出
725760105
(725760,10
,5) (該型別為元組型別)
全域性變數:函式之外的變數
區域性變數:函式內部的變數
記住如下兩條規則:
① 區域性變數和全域性變數是不同變數
-區域性變數是函式內部的佔位符,可能與全域性變數重名,但一定不同
-函式運算結束後,區域性變數被釋放
-可以使用global保留字在函式內部使用全域性變數
例
n,s =10,
100def
fact
(n):
global s#之後函式內出現的s全都是全域性變數
for i in
range(1
,n+1):
s *= i
return s
print
(fact(n)
,s)輸出
362880000
362880000
② 區域性變數如果是組合資料型別且未在函式內部建立,等同於全域性變數
例1 組合資料型別+未建立
ls =
["f"
,"f"
]#通過使用真實建立了乙個全域性變數列表ls
deffunc
(a):
#此處ls是列表型別,未真實建立則等同於全域性變數
return
func(
"c")
#全域性變數ls被修改
print
(ls)輸出[
'f',
'f',
'c']
例2 組合資料型別+已建立
ls =
["f"
,"f"
]#通過使用真實建立了乙個全域性變數列表ls
deffunc
(a):
ls =
#此處ls是列表型別,真實建立,ls是區域性變數
return ls
ls1 = func(
"c")
#區域性變數ls被修改
print
(ls,ls1)輸出[
'f',
'f']
['c'
]
是一種匿名函式,即沒有名字
-使用lambda保留字定義,返回函式名作為結果
-用於定義簡單的、可以在一行內表示的函式
《函式名》 = lambda 《引數》:《表示式》
等價於def 《函式名》(《引數》):
《函式體》
return 《返回值》
不同的是,只能使用表示式而不能使用
例1
f =
lambda x,y:x+y
print
(f(5,10
))輸出 15
例2
f =
lambda
:"lambda函式"
print
(f()
)輸出 lambda函式
建議:
lambda函式要謹慎使用,主要用作一些特定函式或方法的引數,建議使用def定義普通函式
lambda函式有一些固定使用方式,建議逐漸掌握
出處:北理工python慕課
python函式知識點彙總 python知識點彙總
1 反編譯 1.1windows下生成pyd檔案 加密 windows下安裝python擴充套件提示 unable to find vcvarsall.bat windows下安裝python擴充套件提示 unable to find vcvarsall.bat 2 斷言和異常 從軟體方面來說,錯誤...
python函式知識 Python 函式知識
背景 在學習函式之前,一直遵循 面向過程程式設計,即 根據業務邏輯從上到下實現功能,其往往用一長段 來實現指定功能,開發過程中最常見的操作就是貼上複製,也就是將之前實現的 塊複製到現需功能處,如下 while true if cpu利用率 90 傳送郵件提醒 連線郵箱伺服器 傳送郵件 關閉連線 if...
python 知識點彙總
在學習python 過程中,很多用法,大家都知道可以這樣用,不能那麼用,但是很多時候,為啥麼不能那麼用,關心的人不多,知其所以然,對於學習是很有必要的,有助於我們加深理解。多了解總沒有壞處的。1.自定義函式時,有預設值的形參應放在無預設值的形參之後 在定義函式時,如果有預設值的形參放在無預設值的形參...