寫(xiě)在前面:
經(jīng)過(guò)前面幾部分的學(xué)習(xí)隶糕,我們已經(jīng)可以開(kāi)發(fā)常規(guī)的一些簡(jiǎn)單功能處理程序了纯蛾。
但是對(duì)于我們的項(xiàng)目開(kāi)發(fā)還是遠(yuǎn)遠(yuǎn)不夠的。本節(jié)內(nèi)容開(kāi)始進(jìn)入基礎(chǔ)進(jìn)階部分的學(xué)習(xí)
1. 什么是函數(shù)
我們通常在進(jìn)行一些功能處理的過(guò)程中,需要執(zhí)行一行或者多行代碼來(lái)完成整個(gè)業(yè)務(wù)流程的處理炊林,如:
# 計(jì)算指定半徑的圓的面積
# 定義圓周率
pi = 3.1415926;
# 指定用戶輸入圓的半徑彩倚,通過(guò)int()將輸入的數(shù)據(jù)轉(zhuǎn)換成整數(shù)
r = int(input("請(qǐng)輸入圓的半徑:"));
# 執(zhí)行計(jì)算功能筹我,求取圓的面積
area = pi * (r ** 2);
print("您要求的半徑為" + r + "的圓的面積為:" + str(area));
上面這段程序相信大家都能看懂,就是求取用戶輸入一個(gè)指定半徑的圓的面積
如果我們?cè)诓淮_定的某個(gè)時(shí)刻帆离,又需要求取另一個(gè)圓的面積蔬蕊,應(yīng)該怎么做呢?
思考中....沒(méi)事哥谷,我重新寫(xiě)一下這段代碼岸夯!
這樣,合適嗎们妥?猜扮!
合適,但是存在問(wèn)題监婶,什么問(wèn)題呢…就是代碼重復(fù)旅赢,工作重復(fù),如果每天這樣大量重復(fù)的工作出現(xiàn)惑惶,程序就不再是編程煮盼,而是搬磚了。
此時(shí)带污,我們python和其他編程語(yǔ)言一樣孕似,可以將這段程序封裝成函數(shù),通過(guò)一個(gè)定義的函數(shù)封裝好這些代碼刮刑,在某些需要的時(shí)候喉祭,通過(guò)函數(shù)的名稱直接調(diào)用即可。
1.1. 函數(shù)的定義
函數(shù)的定義非常簡(jiǎn)單雷绢,python中通過(guò)def關(guān)鍵字來(lái)定義函數(shù)
def 函數(shù)名稱(參數(shù)列表):
函數(shù)中封裝的代碼塊
[return 返回值]
代碼塊泛烙,就是多行代碼作為一個(gè)整體,在python中翘紊,通過(guò)縮進(jìn)的方式來(lái)確定不同的代碼塊蔽氨,臨近的相同縮進(jìn)的代碼為一個(gè)整體代碼塊。
一個(gè)python程序中,所有出現(xiàn)縮進(jìn)的空格數(shù)量必須一致鹉究。
函數(shù)中的封裝的代碼塊必須是縮進(jìn)一定部分的多行代碼宇立。
按照上面的例子,我們定義一個(gè)求取圓的面積的函數(shù)
# 定義一個(gè)函數(shù)自赔,用于計(jì)算指定半徑的圓的面積
def getCircleArea(radius):
pi = 3.1415926;
area = pi * (radius ** 2);
return area;
如上所示妈嘹,一個(gè)計(jì)算圓的面積的函數(shù)就被定義好了,函數(shù)的名稱為getCircleArea绍妨。
切記润脸,定義函數(shù)不會(huì)讓函數(shù)中的代碼執(zhí)行。
1.2. 函數(shù)的調(diào)用
定義好的函數(shù)他去,我們需要通過(guò)函數(shù)的名稱來(lái)調(diào)用函數(shù)毙驯,函數(shù)中的代碼才會(huì)執(zhí)行。
調(diào)用函數(shù)通過(guò)函數(shù)名稱()
來(lái)調(diào)用函數(shù)灾测,后面的圓括號(hào)中爆价,可以根據(jù)定義函數(shù)的參數(shù)列表給函數(shù)傳遞對(duì)應(yīng)的參數(shù)
r = int(input("請(qǐng)輸入圓的半徑:"));
a = getCircleArea(r);
print("圓的面積是:" + str(a));
這樣,我們就可以在需要的時(shí)候媳搪,直接通過(guò)定義好的函數(shù)名稱getCircleArea(radius)來(lái)進(jìn)行函數(shù)功能的重復(fù)執(zhí)行了允坚。
下一節(jié),我們針對(duì)函數(shù)的參數(shù)進(jìn)行單獨(dú)的講解