Python 函式知識彙總

2021-10-09 05:56:46 字數 3325 閱讀 3209

① 是什麼 函式是一段具有特定功能、可重用的語句組,是一種功能的抽象。

② 作用 降低程式設計難度和**復用

③ 怎麼用

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.自定義函式時,有預設值的形參應放在無預設值的形參之後 在定義函式時,如果有預設值的形參放在無預設值的形參...