# 函式中儲存的**不會立即執行,需要呼叫
'''語法:
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 是調 函式 定義乙個函式 函式中儲存的 不會立即執...