08函式 引數

2021-10-07 05:09:10 字數 4341 閱讀 1958

# 函式中儲存的**不會立即執行,需要呼叫

'''語法:

def fn(形參1,形參2...):

**塊'''deffn(

):print

('這是第乙個函式'

)# print(fn) #

fn()

# 這是第乙個函式

# fn是函式物件,fn()是函式呼叫

2.1形參和實參
# 定義乙個函式可以用來求任意兩個數的和

'''賦值——是呼叫時賦值,或者定義時賦值

可以在定義函式時,在括號裡面定義數量不等的形參

函式定義時有形參,呼叫時也得有實參否則報錯

'''def

s(a,b)

:print

(a+b)s(5

,6)# 11

# s() # typeerror: s() missing 2 required positional arguments: 'a' and 'b'

2.2函式的傳遞方式
'''

預設值,c=10這個預設值,如果函式呼叫時另外傳遞實參,則不呼叫預設值,呼叫實參

如果函式呼叫時不傳遞這個實參,則呼叫預設值

即不傳遞實參,預設值生效

''''''

引數的傳遞方式

位置傳參

關鍵字傳參

'''# 位置引數:將對應位置的實參賦值給對應位置的形參

# 形如:fn(1,2,3)——>fn(a,b,c)

deffn

( a, b, c=10)

:print

('a ='

, a)

print

('b ='

, b)

print

('c ='

, c)

fn(4,5

,6)# 結果是:

# a = 4

# b = 5

# c = 6

fn(4,5

)# 結果是:

# a = 4

# b = 5

# c = 10

# 關鍵字傳參:不根據形參定義的順序,而是根據形參名字來進行傳參

# 形如:fn(b=4, c=5, a=6)——>fn(a,b,c)

fn(b=

4, c=

5, a=6)

# 結果是:

# a = 6

# b = 4

# c = 5

# 位置傳參和關鍵字傳參可以混合使用,並且關鍵字必須在後邊

fn(1,2

, c=30)

# 結果是:

# a = 1

# b = 2

# c = 30

# fn(c=30, 1, 2) # syntaxerror: positional argument follows keyword argument

# fn(a=10, 2, 3) # syntaxerror: positional argument follows keyword argument

'''原理:形參和實參,位置傳參和關鍵字傳參

舉例:import requests

headers={}

url=''

requests.request(url, headers=headers)

'''

# 求任意個數的和

deffn

(a,b)

:print

(a+b)

fn(1,2

)# 3

'''裝包:

通過*b的形式傳遞位置引數,將所有實參存入元組b中

'''def

fn1(

*b):

print

('b ='

, b,

type

(b))

fn1(1,

2,3,

4,5)

# b = (1, 2, 3, 4, 5)

'''解包:

遍歷(通過*b存入元組中b)已經裝包的實參,即遍歷乙個元組

'''# 求任意個數的和

defs

(*b)

: r=

0# 用來儲存計算結果

for i in b:

r+=i

print

(b,'各元素累加結果為:'

, r)s(1

,3,54

,6,6

)# (1, 3, 54, 6, 6) 各元素累加結果為: 70

'''可以有多個引數,剩餘元素統一裝入*b

*b此類引數只能有乙個

若*b不是最後乙個引數,其後的引數必須使用關鍵字傳參

*b形參,當實參都是關鍵字傳參時,錯誤

**b將關鍵字實參裝包人字典

即*形參不接收關鍵字引數,處理位置引數,**形參可以接收關鍵字引數,並處理

'''def

fn2(a,b,

*c):

print

('a ='

, a)

print

('b ='

, b)

print

('c ='

, c)

fn2(1,

3,4,

6,7,

8,8)

# 結果為:

# a = 1

# b = 3

# c = (4, 6, 7, 8, 8)

# *b不在最後位置,其後引數使用關鍵字傳參

deffn3

(a,*b,c)

:print

('a ='

, a)

print

('b ='

, b)

print

('c ='

, c)

# fn3(1,3,4,6,7,8,8) # typeerror: fn3() missing 1 required keyword-only argument: 'c'

fn3(1,

3,4,

6,7,

8,c=8)

# 結果是:

# a = 1

# b = (3, 4, 6, 7, 8)

# c = 8

# *b形參,當實參都是關鍵字傳參時,錯誤

# fn3(a=1,b=3,c=8) #typeerror: fn3() got an unexpected keyword argument 'b'

# **b將關鍵字實參裝包人字典

deffn4

(**b)

:print

('b ='

, b,

type

(b))

fn4(a=

1,b=

2,c=3)

# b =

defs1

(a,c,

**b)

:print

('a ='

, a)

print

('b ='

, b)

print

('c ='

, c)

s1(c=

3,b=

6,d=

0,e=

5,a=

1,f=8)

# 結果是:

# a = 1

# b =

# c = 3

s1(1,2

,b=6

,d=0

,e=5

)# 結果是:

# a = 1

# b =

# c = 2

'''正規的寫法:*args,**kwargs

def fn(*args,**kwargs):

語句塊'''

'''

引數t為元組、列表時通過*t可以將t中的元素依次賦值給函式中的形參,元素個數與形參個數必須一致

引數t為字典時通過**t可以將t中的k-v中的value值依次賦值給函式中的形參,k-v個數與形參個數必須一致

'''def

fn(a,b,c)

:print

('a ='

, a)

print

('b ='

, b)

print

('c ='

, c)

# t=[1,2,3]

t=print

(type

(t))

# fn(t[0],t[1],t[2])

# fn(*t)

fn(**t)

08函式基礎,函式引數,內建函式

函式的定義 def 函式名 引數 pass return 表示式 函式名命名規則 字母 數字和下劃線組成,和變數命名規則一致 return 後面可以返回任意表示式,但不能是賦值語句 函式呼叫 函式名 引數 return 注意 return 和 print 的區別,return是函式的返回值,返回值可...

08 基本函式

定義函式 function f 呼叫函式 f 可變函式 function f f1 f f1 匿名函式 f function str f helloworld 函式的區域性變數 function t 基本函式 str helloworld int strlen str 用於計算str的長度 head...

課堂筆記08 函式

函式也是 個物件 函式 來儲存 些可執 的 並且可以在需要時,對這些語句進 多次 調 語法 def 函式名 形參1,形參2,形參3.塊注意 函式名必須符合識別符號的規範 可以包含字 數字 下劃線但是不能以數字開 頭 print是函式物件 print 是調 函式 定義乙個函式 函式中儲存的 不會立即執...