新聞中心
1.什么是函數(shù)?
有兩個變量 x 和 y ,當(dāng) x 取其變化范圍中的每一個特定值時,相應(yīng)地有唯一的 y 與它對應(yīng),則稱 y 是 x 的函數(shù)。記為 y = f ( x ),其中 x 為自變量, y 為因變量。
可知函數(shù)由三部分組成:
x:輸入,一般函數(shù)可以有多個輸入。
f:function,通過某種特定的方法將x轉(zhuǎn)換為y,function就是這個方法。
y:輸出,一般函數(shù)只有一個輸出,計算機技術(shù)中的函數(shù)也可以沒有輸出。
python的函數(shù):由若干個語句塊(function)、函數(shù)名稱、參數(shù)列表(輸入)構(gòu)成,完成一個功能(輸出)。
2.函數(shù)的定義及調(diào)用
1.函數(shù)的定義
python使用def語句定義函數(shù)
def 函數(shù)名(參數(shù)列表):
函數(shù)體(代碼塊)
[return 返回值]
函數(shù)名:一般命名要求。
參數(shù)列表:放一個標(biāo)志符占位,叫做形參。
函數(shù)體:代碼塊,決定函數(shù)的參數(shù)。
return:默認都會使用return語句,若無默認返回None。
2.函數(shù)的調(diào)用
通過前面定義的函數(shù)名稱進行調(diào)用,就可以將函數(shù)運行起來,從而得到函數(shù)的返回值。
注意:
調(diào)用的時候需要在函數(shù)名稱后加個小括號()括號內(nèi)填入函數(shù)體中需要的參數(shù),傳入的參數(shù)叫做實參。
函數(shù)傳入的參數(shù)必須和函數(shù)體中需要的函數(shù)(實參)保持數(shù)量一致,除非原函數(shù)參數(shù)列表中定義的有默認參數(shù)。
#定義函數(shù)add()
def add(x,y):
sum = x+y
return sum
#調(diào)用函數(shù)add()
add(1,3)
4
3.函數(shù)的參數(shù)
python傳入的參數(shù)分為兩類,一種說根據(jù)位置傳入的參數(shù)叫位置參數(shù),另外一種可以根據(jù)形參定義的變量傳入的參數(shù)叫關(guān)鍵字參數(shù)。
傳入的時候,位置參數(shù)需放在關(guān)鍵字參數(shù)之前。
1.普通位置參數(shù)
把參數(shù)1給x,參數(shù)3給y。一一對應(yīng),這種就是位置參數(shù)。位置參數(shù)是按照順序一一傳入。
def add(x,y):
sum = x+y
return sum
add(1,3)
4
2.可變位置參數(shù)
在普通位置前面加個"*",可以一次接受多個參數(shù)。使用一個元組(tuple)收集多個實參。
def add(*nums):
sum = 0
print(type(nums))
for x in nums:
sum+=x
print(sum)
add(3,5,6)
14
def add(x,*nums):
sum = 0
print(nums)
for x in nums:
sum+=x
print(sum)
add(3,5,6)
(5, 6)
11
3.關(guān)鍵字參數(shù)
把3傳給y,1傳給x。按照定義好的關(guān)鍵字傳入?yún)?shù),位置可以隨意。
def add(x,y):
sum = x+y
return sum
add(y=3,x=1)
4
def add(x,y):
sum = x+y
return sum
add(1,y=1)
2
4.可變關(guān)鍵字參數(shù)
在普通關(guān)鍵字參數(shù)前面加兩個"**",可以一次接受多個關(guān)鍵字參數(shù),收集到的實參名稱和值組成一個字典(dict)。
def showconfig(**kwargs):
for k,v in kwargs.items():
print('{} = {}'.format(k, v))
showconfig(host='127.0.0.1',port='8080',username='mykernel',password='qwe123')
username = mykernel
password = qwe123
port = 8080
host = 127.0.0.1
def showconfig(x,y,*args,**kwargs):
print(x)
print(y)
print(args)
print(kwargs)
showconfig('127.0.0.1',8080,'mykernel',password='qwe123')
#此時使用關(guān)鍵字參數(shù)給x,y賦值就會報錯。
127.0.0.1
8080
('mykernel',)
{'password': 'qwe123'}
5.默認參數(shù)
有些參數(shù)很少改變,所以可以在指定形參的時候傳入一個默認值,當(dāng)有新的實參去替換它的時候,新的參數(shù)生效。
默認參數(shù)必須放在普通參數(shù)之后
#傳入默認值參數(shù)
def add(x=11,y=111):
sum = x+y
return sum
add() #未傳入?yún)?shù),默認參數(shù)生效
122
#有再次傳入?yún)?shù),替換默認值。
def add(x=11,y=111):
sum = x+y
return sum
add(657,y=123) #新傳入的參數(shù)生效
780
定義一個函數(shù)login,參數(shù)名稱為host、port、username和password。
def login(host='127.0.0.1',port='80',username='mykernel',password='123'):
print('{}:{}\nname:{}\npasswd:{}\n'.format(host,port,username,password))
login()
login('192.168.1.1',8080)
login('10.0.0.1',password='qwe123')
127.0.0.1:80
name:mykernel
passwd:123
192.168.1.1:8080
name:mykernel
passwd:123
10.0.0.1:80
name:mykernel
passwd:qwe123
6.keyword-only參數(shù)(python3后引入)
定義方法一:在可變位置參數(shù)后,出現(xiàn)普通參數(shù)。此時這個普通參數(shù)就被python視作為keyword-only參數(shù),keyword-only參數(shù)在傳入時必須使用關(guān)鍵字傳參方法傳入。
定義方法二:def fn(*, x,y),*,后跟普通參數(shù),也被視為keyword-only參數(shù),x,y均為keyword-only參數(shù)。
7.參數(shù)定義順序
def fn1(x, y, z=3, *args, m=4, n, **kwargs):
print(x,y)
print(z)
print(args)
print(m,n)
print(kwargs)
print(end='\n')
#x,y是普通參數(shù)
#z,帶默認值,傳入時候省略,缺省參數(shù)
#*args,可變位置參數(shù)
#m=4,keyword-only 缺省參數(shù)
#n,keyword-only參數(shù)
#**kwargs,可變關(guān)鍵字參數(shù)
fn1(1,2,n=4)
fn1(1,2,4,43,123,k=123,m=11,n=13,j='hello')
1 2
3
()
4 4
{}
1 2
4
(43, 123)
11 13
{'j': 'hello', 'k': 123}
def fn2(x, y, z=3, *, m=4, n, **kwargs): #定義m,n為keyword-only參數(shù)。
print(x,y)
print(z)
print(m,n)
print(kwargs)
print(end='\n')
fn2(1,2,m=1,n=2)
1 2
3
1 2
{}
8.參數(shù)解構(gòu)
def add(x,y):
print(x+y)
print()
add(*(4,6)) #參數(shù)解構(gòu)
# add(*(1,2)) add(*[1,2]) add(*{1,3})
add(**{'x':1,'y':11}) #字典參數(shù)解構(gòu),x,y參數(shù)要和定義的對應(yīng)起來。把x=1,y=11 傳入形參,關(guān)鍵字傳參。
d = {'a':1,'b':12}
add(*d.keys()) #取k 把取出來的k賦值給形參,位置傳參。
add(*d.values()) #取values
10
12
ab
13
推廣博客來了:http://hexo.mykernel.cn/python-function-1.html
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前標(biāo)題:python的函數(shù)-創(chuàng)新互聯(lián)
URL分享:http://www.dlmjj.cn/article/cdeceh.html