python 函數(shù)的詳解與應(yīng)用范例
如何定義一個函數(shù)
函數(shù)也稱方法,下面寫一個簡單的函數(shù):
def function():
print("我是函數(shù)。")
這是一個很簡單的函數(shù),函數(shù)只干了一件事,打印輸出“我是函數(shù)。”這句話。
從這個函數(shù)的外觀看,有個def,還有個function加個()和:。def是定義函數(shù)的關(guān)鍵字不能改動,function為函數(shù)的名稱,可以隨便寫,后加()和:這是規(guī)定。
在函數(shù)里面的輸出語句可以稱之為函數(shù)體所有函數(shù)體需要進(jìn)行縮進(jìn),不然那個會報錯。
如何使用
使用方式很簡單
function()
重復(fù)函數(shù)名再加上括號,就可以使用了
什么是參數(shù)
接下來我寫一個函數(shù):
def function(a,b): print(a,b)
在這個函數(shù)里,括號里面的 a和b就叫參數(shù)(函數(shù)參數(shù))也叫形式參數(shù)。參數(shù)是干什么的呢?參數(shù)的作用是可以向這個目標(biāo)函數(shù)傳入一些東西。
比如在這個函數(shù)里是可以打印外面?zhèn)魅氲膮?shù)內(nèi)容:
function("aaa","bbb")
我向這個函數(shù)傳入了兩個參數(shù),參數(shù)的位置是不能改變的,"aaa"可以成為實際參數(shù),對應(yīng)的就是a這個形式參數(shù),"bbb"對應(yīng)就是b,這個傳入的過程為參數(shù)傳遞
結(jié)果輸出的順序就是:
aaa bbb
還可以這樣進(jìn)行參數(shù)傳遞:
function(a="aaa","bbb")
function("aaa",b="bbb")
function(a="aaa",b="bbb")
function(b="bbb",a="aaa")
當(dāng)我們所定義的函數(shù)里面存在參數(shù),當(dāng)使用的它的時候,一定需要傳入?yún)?shù)不然會報錯,類如:
def function(a): print(a) function()
運行結(jié)果:
TypeError Traceback (most recent call last)
<ipython-input-1-1ea14deaa8c8> in <module>
2 print(a)
3
----> 4 function()TypeError: function() missing 1 required positional argument: 'a'
不定長參數(shù)
如果不知到傳遞的參數(shù)到底有多少,該怎么辦呢?
可以用*和**來實現(xiàn)。
加了 * 的參數(shù)會以元組(tuple)的形式傳入,存放所有未命名的變量參數(shù),類如:
def function(*args): print(args) function(12,35,65)
運行結(jié)果:
(12, 35, 65)
發(fā)現(xiàn)輸出結(jié)果是一個元組,包含了所有傳入的參數(shù)
加了兩個星號 ** 的參數(shù)會以字典的形式傳入;
def function(**kwargs): print(kwargs) function(a=12,b=35,c=65)
這里傳入的參數(shù)需要注意,是鍵值對。
當(dāng) 一個星號,和兩個星號同時出現(xiàn),一個星號必須在兩個星號前面,列如:
def function(*args, **kwargs): print(args) print(kwargs)
return是干什么
如果函數(shù)里面出現(xiàn)return,表示這個函數(shù)運行到這里結(jié)束了,后面不管有多少多不會再執(zhí)行。并且return會返回它后面表達(dá)式的值,相當(dāng)于把后面的值賦給函數(shù),例如:
def function():
print("aa")
return "aaa"
print("bb")
print(function())
運行結(jié)果:
aa
aaa
發(fā)現(xiàn)return后面的語句沒有執(zhí)行函數(shù)就退出了,并且函數(shù)自己也有值了。
到此這篇關(guān)于python 函數(shù)的詳解與應(yīng)用范例的文章就介紹到這了,更多相關(guān)python 函數(shù)內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信