函數(shù)最初被設(shè)計出來,是用來減輕重複 coding 一段相同的代碼,這之間只有代碼 (方法,Method) 的重用,但還沒有物件導(dǎo)向OO整個Object 的屬性與方法被封裝重用的概念。
函數(shù)的定義很簡單,使用 def 這保留字,而其宣告方式如下:
def 函數(shù)名(參數(shù)名) :
例如:
>>> def print_count(): # 函數(shù)宣告
...??? print('Good')
...??? print('Morning')
...??? print('Mr.')
...
>>> print_count()? # 函數(shù)調(diào)用
Good
Morning
Mr.
函數(shù)允許巢狀 Nested 結(jié)構(gòu),即一個函數(shù)的主體 Body 可以呼叫 call 另一個函數(shù), 例如:
>>> def repeat_count(k):
...??? for i in range(1,k):
...????? print_count()
...
>>> repeat_count(2)
Good
Morning
Mr.
對函數(shù) repeat_count(k) 而言,k 是形參 (parameter),而調(diào)用此函數(shù) repeat_count(2) 的 2 是實參(argument)。
在函數(shù)的Body內(nèi)定義的變數(shù) Variable 都是局部的 Local,即它們只有存在函數(shù)內(nèi),例如:
>>> m = 6
>>> def repeat_count(k):
...??? for i in range(1,k):
...?????? print_count()
...??? m = 3
...
>>> repeat_count(2)
Good
Morning
Mr.
>>> print(m)
6
這範(fàn)例我們宣告一個全局 Global 變數(shù) m,並且指定 Assign 其值為 6,但在函數(shù)repeat_count(k) 同樣宣告一個同名的變數(shù) m,指定其值為 3。,當(dāng)呼叫調(diào)用此函數(shù)後,m 的值顯示依然為 6。
函數(shù)在被呼叫計算後,可以定義返回值 Return Value (Fruitful Function)。例如:
>>> def repeat_count(k):
...??? for i in range(1,k):
...?????? print_count()
...??? return ('OK')
...
>>> status = repeat_count(2)
Good
Morning
Mr.
>>> print(status)
OK
函數(shù) repeat_count(2) 被呼叫後,將其返回值 'OK' 指定給變數(shù) status。
還有一種函數(shù),自己呼叫自己,此類函數(shù)被稱為遞歸(Recursive)函數(shù)。例如:
>>> def factorial(n):
...??? if n == 1:
...?????? return 1
...??? else:
...?????? return n * factorial(n - 1)
...
>>> factorial(3)
6
>>> factorial(4)
24
>>> factorial(5)
120
有關(guān)遞歸函數(shù)的概念較複雜,需另闢章節(jié)說明。
/end
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
