Python語言學(xué)習(xí):函數(shù)學(xué)習(xí)和總結(jié)
2022年第02周。
這一周Python語言學(xué)習(xí),記錄如下。
01
函數(shù)學(xué)習(xí)和總結(jié)
1 函數(shù)是什么?
函數(shù)是一組有組織的、可復(fù)用的代碼,用于執(zhí)行單個相關(guān)操作。
2 為什么學(xué)習(xí)函數(shù)?
函數(shù)為您的應(yīng)用程序提供了更好的模塊化和高度的代碼復(fù)用。
3 函數(shù)構(gòu)建
Python語言創(chuàng)建函數(shù)的簡單規(guī)則。
1 函數(shù)塊以關(guān)鍵詞
def開頭,后面跟著函數(shù)名和小括號。2 各種類型的輸入?yún)?shù)寫在小括號內(nèi)。
3 函數(shù)代碼塊以冒號結(jié)尾并縮進。
4 撰寫函數(shù)文檔字符串
5 設(shè)計和實現(xiàn)函數(shù)體,用來告訴函數(shù)要做什么事情
6 使用
return返回函數(shù)值(可選)
函數(shù)構(gòu)建模板類似如下
def?functionname(?parameters?):
???"function_docstring"
???function_suite
???return?[expression]
舉例說明如下:
def?calculate_sum(val1,?val2):
????"""
????This?is?a?longer?docstring?defining?also?the?args?and?the?return?value.
????Args:
????????val1:?the?first?parameter
????????val2:?the?second?parameter
????Returns:
????????result:?The?sum?of?val1?and?val2
????"""
????result?=?val1?+?val2
????return?result
4 函數(shù)調(diào)用
根據(jù)函數(shù)名和參數(shù)類型,進行正確調(diào)用就可以了。后面的函數(shù)參數(shù)類型會學(xué)習(xí)各種豐富的函數(shù)調(diào)用。
print(help(calculate_sum))
print(calculate_sum(100,?100))
4 函數(shù)參數(shù)類型
Python創(chuàng)建的函數(shù),參數(shù)類型非常地豐富。熟練掌握它們,可以設(shè)計和實現(xiàn)強大而靈活的應(yīng)用程序。
函數(shù)的參數(shù)類型包括位置參數(shù)、默認參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)、命名關(guān)鍵字參數(shù)。這些參數(shù)類型組合在一塊的時候,順序依次為位置參數(shù),默認參數(shù),可變參數(shù),命名關(guān)鍵字參數(shù),關(guān)鍵字參數(shù)。
關(guān)于這些參數(shù)類型,我們可以這樣通俗地理解。
若是參數(shù)類型沒有可變性,我們可以采用位置參數(shù),若是位置參數(shù)里面某一個參數(shù)或者幾個參數(shù)的值是穩(wěn)定的,我們就可以把它設(shè)為默認參數(shù),注意默認參數(shù)需要排在位置參數(shù)后面。如果是可變參數(shù),我們可以采用可變參數(shù)或者關(guān)鍵字參數(shù),如果對于關(guān)鍵字,我們需要進一步限定,這個時候,我們就可以使用命名關(guān)鍵字參數(shù)。
再次重申一遍,若是這些參數(shù)類型混搭時,請按著位置參數(shù)、默認參數(shù)、可變參數(shù)、命名關(guān)鍵詞參數(shù)和關(guān)鍵詞參數(shù)來排序和設(shè)計。
4.1 位置參數(shù)
舉例如下:
def?power(x,?n):
????s?=?1
????while?n?>?0:
????????n?=?n?-?1
????????s?=?s?*?x
????return?s
print(power(2,?5)
4.2 默認參數(shù)
舉例如下:
def?power(x,?n=2):
????s?=?1
????while?n?>?0:
????????n?=?n?-?1
????????s?=?s?*?x
????return?s
print(power(5))
print(power(5,?4))
4.3 可變參數(shù)
舉例如下:
def?calc(*numbers):
????sum?=?0
????for?n?in?numbers:
????????sum?=?sum?+?n?*?n?
????return?sum
print(calc(1,?2))
print(calc(1,?2,?3))
print(calc(*[1,?2,?3]))
print(calc(*(1,?2,?3))
4.4 關(guān)鍵字參數(shù)
舉例如下:
def?person(name,?age,?**kw):
????print('name:',?name,?'age:',?age,?'other:',?kw)
print(person('John',?30,?city='zhongshan'))
print(person('John',?20,?city='zhongshan',?job='teacher'))
name?=?'luqin'
age?=?30
info?=?{'city':'zhongshan',?'job':'DS',?'sex':'M'}
person(name,?age,?**info)
args?=?('luqin',?30)
kw?=??{'city':'zhongshan',?'job':'DS',?'sex':'M'}
person(*args,?**kw)
4.5 命名關(guān)鍵字參數(shù)
舉例如下:
def?person1(name,?age,?*,?city,?job):
????print(name,?age,?city,?job)
person1('Jack',?24,??city='Beijing',?job='teacher')
4.5 各種參數(shù)類型組合使用
舉例如下:
#?各種參數(shù)類型組合
def?func(a,?b,?c=0,?*args,?d,?**kw):
????print('a?=',?a,?'b?=',?b,?'c?=',?c,?'args',?args,?'d?=',?d,?'kw?=',?kw)
args?=?(1,?2,?3,?4,?5)
kw?=?{'d':100,?'city':'zhongshan',?'job':'teacher'}
func(*args,?**kw)
對于任意函數(shù),都可以通過類似func(*args, **kw)的形式調(diào)用它,無論它的參數(shù)是如何定義的。
實際工作中,建議避免這種操作,不利于函數(shù)的使用。
5 小結(jié)
1 函數(shù)可以讓你模塊化編程,讓代碼具有高度復(fù)用性,不在避免重復(fù)造輪子。
2 函數(shù)的參數(shù)類型非常靈活。
3 任意函數(shù),都可以類似
func(*args, **kw)的形式調(diào)用它。
我創(chuàng)建了Python語言群,你可以掃描下方二維碼,添加我的微信,備注:姓名-Python群,我邀請你加入群,一起學(xué)習(xí)和進步。
如果你覺得內(nèi)容有用,請關(guān)注下方公眾號~
如果你想找數(shù)據(jù)工作,請關(guān)注下方公眾號~
Python語言學(xué)習(xí)專輯:
如果覺得本文不錯,就順手幫我轉(zhuǎn)發(fā)到朋友圈和微信群哦。
