python3 函式 基礎知識二

2021-08-20 20:29:54 字數 4170 閱讀 4514

1. python 函式的引數傳遞

1.傳遞方式:

位置傳參

序列傳參

關鍵字傳參

字典關鍵字傳參

2. 位置傳參:

實際呼叫引數(實參)的對應關係與形式引數(形參)的對應關係

是按位置來一次對應的

示意:

def fx(a,b,c):

pass

fx(1, 2, 3)

3.序列傳參:

序列傳參是批在函式呼叫過程中,用*將序列拆解後按位置進行

傳遞的傳參方式,實參和形參通過序列傳遞和匹配

示例1:

def fx(a, b, c):

pass

s1 = [11, 22, 33] #列表

fx(*s1) # 將s1序列拆解後按位置傳入fx中

示例2:
def fx(a, b, c):

print('a = ', a)

print("b = ", b)

print('c = ', c)

s1 = [11, 22, 33]

# fx(s1[0],s1[1],s1[2]) # 用索引傳參

fx(*s1) # 序列傳參,*代表將s1 拆解後再依次傳入

fx(*"abc") # a b c

fx(*(101,102,103))

4.關鍵字傳參

是指傳參時,按著形參的名稱給形參賦值

實參和形參按名稱進行匹配

示例:

def fx(a, b, c):

pass

fx(b=22, c=33, a=11) # 11--->a, 22---->b, 33---->c

注:

實參和形參按形參名進行匹配,可以不按位置進行匹配

# 此示例示關鍵字列傳參

def fx(a, b, c):

print('a = ', a)

print("b = ", b)

print('c = ', c)

fx(b=22, c=33, a=11)

5.字典關鍵字傳參:

實參為字典,用**拆解字典後再進行關鍵字傳參

示例:

def fx(a, b ,c):

pass

d =

fx(**d) # 拆解字典內依次按關鍵字傳參

說明:

字典的鍵名和形參名必須一致

字典的鍵名必須為字串

字典的鍵名必須在形參中存在

# 此示例示字典關鍵字列傳參

def fx(a, b, c):

print('a = ', a)

print("b = ", b)

print('c = ', c)

d =

fx(**d)

6.綜合傳參:

函式的傳參方式子能確定形參能唯一匹配到相應實參的情況下

可以任意組合

注:通常位置傳參和序列傳參先傳遞,其次關鍵字傳參和字典關鍵字傳參

示例:

def fx(a,b,c,e,f):

pass

fx(10, *[20,30],e=50,**)

# 以下是錯誤的做飯

fx(e=50,**,10, *[20,30])

2.函式的形參

1.函式的預設引數

語法:def 函式名(形參名1=預設實參1,形參名2=預設實參2,....):

語句示例:

def info(name,age=1,address="不詳"):

print("我叫",name, '我今年:',age, '歲,家庭住址:',address)

info("張飛",30,"中原")

info("tarena",10)

info('趙雲')

# 我叫 張飛 我今年: 30 歲,家庭住址: 中原

# 我叫 tarena 我今年: 10 歲,家庭住址: 不詳

# 我叫 趙雲 我今年: 1 歲,家庭住址: 不詳

說明:

預設引數必須自右至左(倒序)依次存在

預設引數可以有0個,1個,多個,甚至全部都有預設引數

預設引數的繫結物件存在於函式內,同函式的生命週期一致

示例:

def fn(a,lst=):

print(lst)

l = [1,2,3,4]

fn(5,l) # [1, 2, 3, 4, 5]

fn(6,l) # [1, 2, 3, 4, 5,6]

fn(1.1) # [1.1]

fn(2.2) # [1.1, 2.2]

fn(3.3) # [1.1, 2.2, 3.3]

fn(4.4) # [1.1, 2.2, 3.3, 4.4]

2.函式的形參定義方式:

1.位置形參

2.星號元組形參

3.命名關鍵字形參

4.雙星號字典形參

3.位置形參:

def 函式名(形參名1,形參名2...)

語句塊4.星號元組形參:

語法:def 函式名(*元組形參名):

語句塊作用:

收集位置多餘的位置傳參

示例:

# 此示例示意星號元組形參

def func(*args):

print("實參個數是:",len(args))

print("args的值是:",args)

func(1,2,3)

func("abcd",3.14,100,true,none)

5.命名關鍵字形參

語法:def 函式名(*,命名關鍵字形參):

語句塊或

def 函式名(*arge,命名關鍵字形參):

語句塊作用:

所有的命名關鍵字形參都是強調採用者採用關鍵字傳參或字典關鍵字傳

參的方式呼叫

示例1:

# 此示例示意命名關鍵字形參

def myfun(a,*,k):

print("a =", a)

print("k =", k)

myfun(100,k=200) # k強調使用關鍵字傳參

myfun(10,**)

示例2:

def myfun2(b, *args, c, d):

print("b=",b)

print("args=",args)

print("c=",c)

print("d=",d)

myfun2(100,200,300,400,d=600,c=500)

6.雙星號字典形參:

語法:def 函式名(**字典形參名):

語句塊作用:

收集多餘的關鍵字傳參

注:字典形參名通常叫kwargs

示例:

# 此示例示意雙星號字典形參的用法:

def func(**kwargs):

print("關鍵字傳參的個數是:",len(kwargs))

print("kwargs=",kwargs)

func(name='tarena',age=15)

func(a=1, b='bbbb',c=[2,3,4],d=true)

3.函式引數說明:

位置形參,預設引數,星號元組形參,命名關鍵字形參,雙星號字典形參,

可以混合使用

函式引數自左至由的順序為:

1.位置形參

2.星號元組形參

3.命名關鍵字形參

4.雙星號字典形參

示例:

def fn(a,b,*args,c,**kwargs):

pass

fn(100,200,300,400,*"ab",**,c=100)

4.可以接受任意位置傳參和關鍵字傳參的函式:

def fn(*args,**kwargs):

print(args,kwargs)

fn(100,200,300,400,a=100,b=200,**)

# (100, 200, 300, 400)

python3 基礎知識 六 函式 上

函式能提高應用的模組性,和 的重複利用率。你已經知道python提供了許多內建函式,比如print 但你也可以自己建立函式,這被叫做使用者自定義函式。定義函式 定義函式的格式如下 def 函式名 demo 定義乙個函式,能夠完成列印資訊的功能 def printinfo print print 人生...

python3 基礎知識 六 函式 下

所謂 返回值 就是程式中函式完成一件事情後,最後給呼叫者的結果 如下示例 def add2num a,b c a b return c 或者def add2num a,b return a b 儲存函式的返回值示例如下 定義函式 def add2num a,b return a b 呼叫函式,順便儲...

python3 基礎知識 函式應用 上

乙個程式的所有的變數並不是在哪個位置都可以訪問的。訪問許可權決定於這個變數是在 賦值的。變數的作用域決定了在哪一部分程式你可以訪問哪個特定的變數名稱。兩種最基本的變數作用域如下 demo如下 定義全域性變數 a 100 def test1 print a def test2 print a 呼叫函式...