Python語(yǔ)言基礎(chǔ)之函數(shù)語(yǔ)法
在 Python 中,函數(shù)可以通過(guò)以下語(yǔ)法定義和使用:
def function_name(parameter1, parameter2, ...): # 函數(shù)體 # 可以通過(guò) return 語(yǔ)句返回值,也可以省略 return 語(yǔ)句 return ... # 調(diào)用函數(shù) result = function_name(argument1, argument2, ...)
其中, def
關(guān)鍵字用于定義函數(shù),后面跟著函數(shù)名稱和一對(duì)圓括號(hào)。函數(shù)名稱應(yīng)該描述函數(shù)的功能,圓括號(hào)中可以列出函數(shù)的參數(shù)列表,多個(gè)參數(shù)之間用逗號(hào)分隔。
函數(shù)體包含了執(zhí)行函數(shù)所需的一組語(yǔ)句,可以訪問(wèn)參數(shù)和之前定義的變量。
函數(shù)可以通過(guò) return
語(yǔ)句來(lái)返回值,也可以省略 return
語(yǔ)句。調(diào)用函數(shù)時(shí),需要提供與參數(shù)列表對(duì)應(yīng)的一組實(shí)際參數(shù),多個(gè)參數(shù)之間也用逗號(hào)分隔。返回值將賦值給調(diào)用函數(shù)時(shí)指定的變量 result
。 例如,下面是一個(gè)簡(jiǎn)單的 Python 函數(shù)例子:
def add_two_numbers(x, y): return x + y # 調(diào)用函數(shù)并輸出結(jié)果 result = add_two_numbers(3, 4) print(result) # 輸出 7
除了普通函數(shù)之外,Python 還支持匿名函數(shù)(lambda 函數(shù))、遞歸函數(shù)、默認(rèn)參數(shù)、可變參數(shù)和關(guān)鍵字參數(shù)等高級(jí)函數(shù)特性。
1 匿名函數(shù)(lambda 函數(shù))
在 Python 中,匿名函數(shù)也稱為 lambda 函數(shù),它是一種小而簡(jiǎn)單的函數(shù),通常只包含一個(gè)表達(dá)式,可以用來(lái)代替常規(guī)函數(shù)。lambda 函數(shù)的語(yǔ)法如下:
lambda argument_list: expression
其中, argument_list
是參數(shù)列表,可以包含多個(gè)參數(shù),多個(gè)參數(shù)之間用逗號(hào)分隔; expression
是一個(gè)表達(dá)式,用于實(shí)現(xiàn)匿名函數(shù)的功能。
最后,lambda 函數(shù)會(huì)返回這個(gè)表達(dá)式的結(jié)果。 在實(shí)際開發(fā)中,lambda 函數(shù)通常被用于函數(shù)式編程和高階函數(shù)中。例如,下面是一個(gè)使用 lambda 函數(shù)的例子:
# 使用 lambda 函數(shù)實(shí)現(xiàn)求平方和的操作 numbers = [1, 2, 3, 4, 5] squares_sum = sum(map(lambda x: x**2, numbers)) print(squares_sum) # 輸出 55
在這個(gè)例子中,使用 map
函數(shù)和 lambda 表達(dá)式來(lái)實(shí)現(xiàn)求平方和的操作,首先使用 lambda x: x**2
定義一個(gè)匿名函數(shù),然后將這個(gè)函數(shù)作為參數(shù)傳遞給 map
函數(shù),最后使用 sum
函數(shù)來(lái)計(jì)算這些平方數(shù)的和。 需要注意的是,lambda 函數(shù)通常只有一行代碼,如果需要處理復(fù)雜的邏輯,建議使用普通函數(shù)來(lái)代替。
2 python中函數(shù)的可變參數(shù)
Python 中的函數(shù)可以定義可變參數(shù),即在定義函數(shù)時(shí)不確定會(huì)有多少個(gè)參數(shù)傳入,可以使用 *args
或 **kwargs
來(lái)實(shí)現(xiàn)可變參數(shù)。
*args
表示將所有的位置參數(shù)收集到一個(gè)元組中,可以用在函數(shù)調(diào)用時(shí),將多個(gè)參數(shù)傳遞給函數(shù)。**kwargs
表示將所有的關(guān)鍵字參數(shù)收集到一個(gè)字典中,可以用來(lái)接收函數(shù)調(diào)用時(shí)的關(guān)鍵字參數(shù)。
下面是一個(gè)使用 *args
和 **kwargs
的示例:
def add(*args, **kwargs): # 計(jì)算 args 的總各 total = sum(args) # for循環(huán)輸出 kwargs中的內(nèi)容 for key, value in kwargs.items(): # f 是 Python 3.6 中新增的一個(gè)字符串格式化方式 # 可以理解為插值法 print(f"{key} is {value}") return total # 調(diào)用函數(shù) result = add(1, 2, 3, 4, 5, name='John', age=30) # 輸出結(jié)果 print(result)
這個(gè)函數(shù)使用了 *args
將所有的位置參數(shù)收集到元組 args
中,并且使用 **kwargs
將所有的關(guān)鍵字參數(shù)收集到字典 kwargs
中。
然后函數(shù)使用 sum
函數(shù)對(duì)所有的位置參數(shù)求和,并且遍歷字典 kwargs
打印每個(gè)關(guān)鍵字參數(shù)的鍵值對(duì)。最后函數(shù)返回求和的結(jié)果。
在上面的示例中,函數(shù)調(diào)用時(shí)傳入了位置參數(shù) 1, 2, 3, 4, 5 和關(guān)鍵字參數(shù) name='John', age=30。函數(shù)將所有位置參數(shù)求和并返回結(jié)果 15,同時(shí)遍歷字典 kwargs
打印出每個(gè)關(guān)鍵字參數(shù)的鍵值對(duì)。
需要注意的是,如果同時(shí)使用 *args
和 **kwargs
,則需要先定義 *args
,再定義 **kwargs
,否則會(huì)產(chǎn)生語(yǔ)法錯(cuò)誤。
到此這篇關(guān)于Python語(yǔ)言基礎(chǔ)之函數(shù)語(yǔ)法的文章就介紹到這了,更多相關(guān)Python 函數(shù)語(yǔ)法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3+Selenium+Chrome實(shí)現(xiàn)自動(dòng)填寫WPS表單
本文通過(guò)python3、第三方python庫(kù)Selenium和谷歌瀏覽器Chrome,完成WPS表單的自動(dòng)填寫,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02python 還原梯度下降算法實(shí)現(xiàn)一維線性回歸
這篇文章主要介紹了python 還原梯度下降算法實(shí)現(xiàn)一維線性回歸,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10在Django的模板中使用認(rèn)證數(shù)據(jù)的方法
這篇文章主要介紹了在Django的模板中使用認(rèn)證數(shù)據(jù)的方法,Django是最具人氣的Python web開發(fā)框架,需要的朋友可以參考下2015-07-07python matplotlib畫圖庫(kù)學(xué)習(xí)繪制常用的圖
這篇文章主要為大家詳細(xì)介紹了python matplotlib畫圖庫(kù)學(xué)習(xí)繪制常用的圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03Django Admin后臺(tái)模型列表頁(yè)面如何添加自定義操作按鈕
這篇文章主要介紹了Django Admin后臺(tái)模型列表頁(yè)面如何添加自定義操作按鈕,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11