python 函式 引數 返回值

2021-10-01 12:45:29 字數 3717 閱讀 4076

函式(function)也叫方法(method),是一組可以重複使用的**段。函式分為內部函式和使用者自定義函式。內部函式就是程式語言已經寫好了,使用者無序定義就能直接呼叫的函式,比如說len()、str()、print()等,但是這些函式還遠不能滿足實際開發,故使用者可以自定義函式。函式的結構是

def 函式名(引數)

:#(注意縮排)

函式體return 返回值

其中函式的引數和返回值可以省略。函式可以被重複呼叫。函式需要被呼叫才能被執行。呼叫時只需要寫函式名和括號、引數(若有引數的話)就行

# 定義函式(這裡沒有引數和返回值)

defmy_function()

:print

("呼叫了此函式"

)# 呼叫函式,這裡呼叫三次

my_function(

)my_function(

)my_function(

)

引數可以分為

引數型別

說明位置引數

實參與形參一一對應,即實參的位置順序跟形參保持一致

關鍵字引數

位置順序可以不一致,指定形參名=實參

預設引數

如果函式的形參指定了預設值,則不傳實參時就採用形參的預設值

不定長引數(*args)

如果都不滿足以上的引數型別,則實參會被儲存到乙個元組裡,即*args

不定長引數(**kwargs)

如果不滿足以上的引數型別,則指定引數名的實參會被儲存到乙個字典裡即**kwargs

關於引數args, kwargs用法舉例(其他用法太簡單,不上**了)

def

info

(name,

*args,

**kwargs)

:print

("name:"

, name)

print

("args:"

, args)

print

("kwargs:"

, kwargs)

info(

"pan",18

,"男"

, height=

170, city=

"廣西"

)# 列印輸出:

# name: pan

# args: (18, '男')

# kwargs:

1 引數

引數就是在呼叫函式時給函式處理的變數,可以是0個,也可以是乙個或多個。若在定義函式時需要引數(形參),而在呼叫函式時卻沒有傳入引數(實參)則會報錯

# 定義函式,輸出傳入的引數

defsayhello

(a):

print

(a)# 呼叫函式,傳入的引數不一樣

sayhello(

"hello"

)sayhello(

"你好呀"

)sayhello(

)# 呼叫時沒有給引數,報錯

2 預設引數

為了避免因缺少引數值而報錯的情況,可以在定義函式時就給它乙個預設值

需要注意的是,形參只在函式內使用,屬於區域性變數

def

sayhello

(a="hi"):

print

(a)sayhello(

"hello"

)sayhello(

)# 不給引數,輸出預設的hi

若定義函式時使用了多個引數,在呼叫時該函式傳入的引數位置應與定義時一致。但若在定義時指定了形參預設值則實參可以不按順序

def

my_fun

(a=1

, b=2)

:print

(a)print

(b)my_fun(b=

4,a=3)

# 先輸出3,再輸出4

若執行完乙個函式得到乙個值(也可以是其他),可以將其返回。比如說定義乙個加法函式,計算完之後返回計算結果,並把結果賦值給乙個變數

def

add(a, b)

: c = a + b

return c # 這裡返回單個值,若要返回多個值,可以讓它返回乙個列表

d = add(1,

2)print

(d)e = add(3,

4)print

(e)

返回值可以是變數、確定的值、列表等,還可以是乙個函式,比如說返回函式本身,實現階乘

def

factorial

(a):

if a <=1:

s =1else

: s = a*factorial(a-1)

return s

print

( factorial(3)

)

注意

1)如果不指定返回值,即不寫return,則會預設返回乙個none

2)return後面的語句不會再執行

3)函式可以巢狀呼叫,即函式裡可以再呼叫其他函式

全域性變數就是在函式外定義的變數,作用域是全域性,區域性變數是函式內的變數(包括形參),全域性變數與區域性變數沒有關係,區域性變數在使用完的時候就會被銷毀。一般情況下,函式內是無法修改函式外的全域性變數的,若要修改,可以使用global關鍵字宣告該變數是全域性變數

# 定義全域性變數

num =

200def

test()

:# global num 告訴直譯器,函式內部使用的num就是外面的全域性變數num

global num

num =

250# 修改全域性變數

print

('inner num='

, num,

id(num)

)test(

)# 函式呼叫

print

('outer num='

, num,

id(num)

)def

func_outer()

: count =

0def

func_inner()

:nonlocal count

count +=

1return count

return func_inner

如果你的函式的功能很簡單,那就沒必要那麼麻煩定義乙個函式了,可以直接使用lambda定義乙個匿名函式

lambda

[形參1],

[形參2],

...:

[單行表示式] 或 [函式呼叫]

# 普通函式方式

defadd

(a, b)

:return a + b

print

(add(10,

20))# lambda方式

add =

lambda a, b: a + b

print

(add(10,

20))

注意

1)匿名函式只能實現簡單的邏輯,不能使用迴圈、分支等語法

2)匿名函式不需要return,會自動返回表示式的結果

函式 引數 返回值 遞迴

函式 函式表示式就是忽略名字 1 函式宣告 function onname 2 命名函式表示式 var test function abc 3 匿名函式表示式 var demo function 因為匿名函式表示式比較常用,所以說函式表示式一般是指匿名函式表示式 引數 形式引數 沒有實際傳值 實際引...

python函式的引數和返回值

1 函式的引數 引數 其實就是一種變數 是一種特殊的變數 專門給函式接受資料使用的 生活場景 函式 行為 引數 行為需要的資源 案例 函式 展示使用者資訊 使用者 生活 創業 需要什麼資料 錢 def show info name name變數 名義上函式執行需要乙個資料 name 形式引數 形參 ...

python的函式 引數和返回值

1 什麼是函式 函式就是對實現某一特定功能的 段的封裝。2 函式的分類 3 函式的定義 a 語法def 函式名 引數列表 函式體b 說明 def python中宣告函式的關鍵字 函式名 識別符號,不能是關鍵字 pep8命名規範,見名知意。固定格式 引數列表 引數1,引數2,引數3 這裡的引數叫形參。...