如何定義一個(gè)函數(shù)呢?
#定義一個(gè)函數(shù)最簡(jiǎn)單的例子
#使用def關(guān)鍵字
def myFunc(a):
????if a > 0:????????
????????return a????
????else:
????????return 'number is too small'
res = myFunc(1)
res2 = myFunc(-1)
print(res)
print(res2)
#輸出 1
#輸出 number is too small
# 參數(shù)
### 普通參數(shù)
- 沒(méi)什么好說(shuō)的形參和實(shí)參一一對(duì)應(yīng)
### 默認(rèn)參數(shù)
- def 函數(shù)名(參數(shù)1蒋譬,......,參數(shù)n=默認(rèn)值)
- 當(dāng)參數(shù)n沒(méi)傳入時(shí),自動(dòng)調(diào)用默認(rèn)值
### 關(guān)鍵字參數(shù)
- 關(guān)鍵字參數(shù)和函數(shù)調(diào)用關(guān)系緊密女器,函數(shù)調(diào)用使用關(guān)鍵字參數(shù)來(lái)確定傳入的參數(shù)值,使用關(guān)鍵字參數(shù)允許函數(shù)調(diào)用時(shí)參數(shù)的順序與聲明時(shí)不一致
### 收集參數(shù)
- 也叫不定長(zhǎng)參數(shù)住诸,把沒(méi)有位置驾胆,不能喝定義時(shí)的參數(shù)位置相應(yīng)的參數(shù)涣澡,放在一個(gè)特定的數(shù)據(jù)結(jié)構(gòu)中,可以和其他參數(shù)一起用丧诺,可以為空
- 定義def fanc(*args)
- 調(diào)用fanc(p1,p2,p3,......)
### 收集參數(shù)之關(guān)鍵字收集參數(shù)
- 把關(guān)鍵字參數(shù)按字典格式存入收集參數(shù)
- 定義:def func( **kwargs):
- 調(diào)用:func(p1=v1,p2=v2......)
- 例子:
def stu( **kwargs):
????print("自我介紹:")
????print(type(kwargs)) ##type()返回對(duì)象的類(lèi)型
????for k,v in kwargs.items():
????????print(k,":",v)##訪問(wèn)字典
stu(name="bijiaxing",age=25,work="pythoner")
def addr(*args):
????for v in args:
????print(v)
l = ['aaa','bbb','ccc']
addr(*l)#list 數(shù)據(jù)解包
#輸出
自我介紹:
<class 'dict'>
name : bijiaxing
age : 25
work : pythoner
aaa
bbb
ccc
### 參數(shù)的混合使用(優(yōu)先級(jí))
- 普通和關(guān)鍵字優(yōu)先入桂,定義時(shí)一般找普通參數(shù) > 關(guān)鍵字參數(shù) > 收集參數(shù)tuple > 收集參數(shù)dict
### 返回值
- 用return返回內(nèi)容,沒(méi)有返回值會(huì)自動(dòng)返回None驳阎,推薦無(wú)論有沒(méi)有返回值都以return結(jié)束
### 函數(shù)文檔
- 函數(shù)的文檔作用是對(duì)當(dāng)前函數(shù)提供相應(yīng)的參考信息
- 寫(xiě)法:
? ? 在函數(shù)內(nèi)部開(kāi)始第一行使用三字符串定義符抗愁,一般有特定格式
- 例子:
def stu(*args):
????'''這是文檔'''
????pass
help(stu)
stu.__doc__
#輸出
Help on function stu in module __main__:
stu(*args)
? ? 這是文檔
Out[18]:
'這是文檔'