国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python基礎(chǔ)】Python函數(shù)(匿名函數(shù))

這篇具有很好參考價(jià)值的文章主要介紹了【Python基礎(chǔ)】Python函數(shù)(匿名函數(shù))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

基本函數(shù)

1、函數(shù)多返回值

Q:如果一個函數(shù)要有多個返回值,該如何書寫代碼?

# 使用多個變量,接收多個返回值
def test_return():
    return 1, "hi", True

x, y, z = test_return()
print(x)
print(y)
print(z)

運(yùn)行效果:
1
hi
True
  • 按照返回值的順序,寫對應(yīng)順序的多個變量接收即可
  • 變量之間用逗號隔開
  • 支持不同類型的數(shù)據(jù)return

2、函數(shù)多種傳參方式

(1)位置參數(shù)

位置參數(shù):調(diào)用函數(shù)時根據(jù)函數(shù)定義的參數(shù)位置來傳遞參數(shù)

def user_info(name, age, gender):
    print(f"姓名是:{name},年齡是:{age},性別是:{gender}")

# 位置參數(shù)  -默認(rèn)使用形式
user_info('小明', 20, '男')
user_info(20, 'a', '男')

運(yùn)行效果:
姓名是:小明,年齡是:20,性別是:男
姓名是:20,年齡是:a,性別是:男

Tip:傳遞的參數(shù) 和 定義的參數(shù) 順序及個數(shù)必須一致

(2)關(guān)鍵字參數(shù)

關(guān)鍵字參數(shù):函數(shù)調(diào)用時通過"鍵=值"形式傳遞參數(shù)

作用:讓函數(shù)更加清晰、容易使用,同時也清除了參數(shù)的順序需求

def user_info(name, age, gender):
    print(f"姓名是:{name},年齡是:{age},性別是:{gender}")

# 關(guān)鍵字參數(shù)
user_info(name='小王', age=20, gender='女')
user_info(age=20, name='bb', gender='女')  # 可以不按照參數(shù)的定義順序傳參
user_info('甜甜', gender="女", age=9)  # 混用

運(yùn)行效果:
姓名是:小王,年齡是:20,性別是:女
姓名是:bb,年齡是:20,性別是:女
姓名是:甜甜,年齡是:9,性別是:女

Tip:函數(shù)調(diào)用是,如果有位置參數(shù)是,位置參數(shù)必須在關(guān)鍵字參數(shù)的前面,但關(guān)鍵字參數(shù)之間不存在先后順序

(3)缺省參數(shù)

缺省參數(shù):缺省參數(shù)也叫默認(rèn)參數(shù),用于定義函數(shù),為參數(shù)提供默認(rèn)值,調(diào)用函數(shù)時可不傳該默認(rèn)參數(shù)的值(注意:所有位置參數(shù)必須出現(xiàn)在默認(rèn)參數(shù)前,包括函數(shù)定義和調(diào)用)

作用:當(dāng)調(diào)用函數(shù)時沒有傳遞參數(shù),就會使用默認(rèn)是缺省參數(shù)對應(yīng)的值

# 缺省參數(shù)
def user_info(name, age, gender='male'):
    print(f"姓名是:{name},年齡是:{age},性別是:{gender}")


user_info('TOM', 20)
user_info('Mary', 67, 'female')

運(yùn)行效果:
姓名是:TOM,年齡是:20,性別是:male
姓名是:Mary,年齡是:67,性別是:female

Tip1:函數(shù)調(diào)用時,如果為缺省參數(shù)傳值則修改沒人參數(shù)值,否則使用這個默認(rèn)值

Tip2:默認(rèn)參數(shù)必須寫在最后面

(4)不定長參數(shù)

不定長參數(shù):不定長參數(shù)也叫可變參數(shù),用于不確定調(diào)用的時候會傳遞多少個參數(shù)(不傳參也可以)的場景

作用:當(dāng)調(diào)用函數(shù)是不確定參數(shù)個數(shù)時,可以使用不定長參數(shù)

  • 不定長參數(shù)的類型:
    1. 位置傳遞
    2. 關(guān)鍵字傳遞
位置傳遞
# 不定長傳遞  -位置傳遞
# 不定長定義的形式參數(shù)會作為元組存在,接收不定長數(shù)量的參數(shù)傳入
def user_info(*args):  # 示例代碼中通過一個星號去定義一個形式參數(shù)
    print(f"args參數(shù)的類型是:{type(args)},內(nèi)容是:{args}")


user_info(1, 2, 'Tom')  # 返回一個只有TOM的元組:('Tom',)
user_info('hi', 'Tom', 18)  # 返回由tom和18組成的元組:('Tom', 18)

# 通過這種形式想傳多少參數(shù)都可以,這是通過*得到的不定長

運(yùn)行效果:
args參數(shù)的類型是:<class 'tuple'>,內(nèi)容是:(1, 2, 'Tom')
args參數(shù)的類型是:<class 'tuple'>,內(nèi)容是:('hi', 'Tom', 18)

Tip:傳進(jìn)的所有參數(shù) 都會被args變量收集,它會根據(jù)傳進(jìn)參數(shù)的位置合并為一個元組(tuple),args是元組類型,這既是位置傳遞

關(guān)鍵字傳遞

兩個*表示:

  1. 同樣,數(shù)量是不受限的
  2. 同時,內(nèi)容應(yīng)滿足Key=Value的鍵值對形式

所以,這個kwargs形式參數(shù),就是一共前面所學(xué)習(xí)過的數(shù)據(jù)容器之字典

調(diào)用的時候,只需要按照字典的形式傳入即可

e.g. name=‘Tom’

# 不定長傳遞 -關(guān)鍵字傳遞
# kw指keyword
# 兩個*,數(shù)量不受限,數(shù)據(jù)形式受限(必須是KV型)
def user_info(**kwargs):
    print(f"kwargs參數(shù)的類型是:{type(kwargs)},內(nèi)容是:{kwargs}")


# {'name': 'TOM', 'age': 18, 'id': 110}
user_info(name='TOM', age=18, id=110)

運(yùn)行效果:
kwargs參數(shù)的類型是:<class 'dict'>,內(nèi)容是:{'name': 'TOM', 'age': 18, 'id': 110}

Tip:參數(shù)是“鍵=值”形式 的情況下,所以的“鍵=值

3、小結(jié)

  1. 位置參數(shù):
    • 根據(jù)參數(shù)位置來傳遞參數(shù)
  2. 關(guān)鍵字參數(shù):
    • 通過”鍵=值“形式傳遞參數(shù),可以不限參數(shù)順序
    • 可以和位置參數(shù)混用,位置參數(shù)需在前
  3. 缺省參數(shù)
    • 不傳遞參數(shù)值時會使用默認(rèn)的參數(shù)
    • 默認(rèn)值的參數(shù)必須定義在最后
  4. 不定長參數(shù)
    • 位置不定長傳遞 以*號標(biāo)記一個形式參數(shù),以元組的形式接受參數(shù),形式參數(shù)一般命名為args
    • 關(guān)鍵字不定長傳遞 以**號標(biāo)記一個形式參數(shù),以字典的形式接受參數(shù),形式參數(shù)一般命名為kwargs

匿名函數(shù)

1、函數(shù)作為參數(shù)傳遞

在前面的函數(shù)學(xué)習(xí)中,一種使用的函數(shù),都是接受數(shù)據(jù)作為參數(shù)傳入:

  • 數(shù)字
  • 字符串
  • 字典、列表、元組等

其實(shí),我們學(xué)習(xí)的函數(shù)本身,也可以作為參數(shù)傳入另一個函數(shù)內(nèi)

def test_func(compute):
    result = compute(1, 2)
    print(result)

def compute(x, y):
    return x + y

test_func(compute)  # 結(jié)果:3

函數(shù)compute,作為參數(shù),傳入了test_func函數(shù)中使用。

  • test_func需要一個函數(shù)作為參數(shù)傳入,這個函數(shù)需要接受2個數(shù)字進(jìn)行計(jì)算,計(jì)算邏輯由這個被傳入函數(shù)決定
  • compute函數(shù)接收2個數(shù)字對其進(jìn)行計(jì)算,compute函數(shù)作為參數(shù),傳遞給了test——func函數(shù)使用
  • 最終,在test_func函數(shù)內(nèi)部,由傳入的compute函數(shù),完成了對數(shù)字的計(jì)算操作

所以,這是一種,計(jì)算邏輯的傳遞,而非數(shù)據(jù)的傳遞

就像上述代碼那樣,不僅僅是相加、相減、相處、等任何邏輯都可以自定義并作為函數(shù)傳入

//什么叫計(jì)算邏輯的傳遞?

e.g.

def add(x,y):

? return x + y

這個函數(shù)的功能是完成兩數(shù)相加,其接收的參數(shù)是被相加的數(shù)字

所以當(dāng)我們將數(shù)字傳遞進(jìn)去的時候,傳遞的是數(shù)據(jù)

而test_func函數(shù)要求傳入的是函數(shù),[函數(shù) 是一堆代碼的封裝,即 在函數(shù)體中包含了具體的執(zhí)行邏輯]

所以,要求傳入函數(shù),本質(zhì)上是傳入代碼的執(zhí)行邏輯

  • 傳入數(shù)據(jù)的函數(shù),它的計(jì)算邏輯是確定的,不確定的是被計(jì)算的數(shù)據(jù)
  • 傳入邏輯的函數(shù),數(shù)據(jù)是確定的,不確定的是計(jì)算的邏輯
# 定義一個函數(shù),接收另一個函數(shù)作為傳入?yún)?shù)
def test_func(compute):
    result = compute(1, 2)  # 確定cpmpute是函數(shù)
    print(f"compute參數(shù)的類型是:{type(compute)}")
    print(f"計(jì)算結(jié)果:{result}")

# 定義一個函數(shù),準(zhǔn)備作為參數(shù)傳入另一個函數(shù)
def compute(x, y):
    return x + y

# 調(diào)用,并傳入函數(shù)
test_func(compute)  # 結(jié)果:3

小結(jié)

  1. 函數(shù)本身是可以作為參數(shù),傳入另一個函數(shù)中進(jìn)行使用的。
  2. 將函數(shù)傳入的作用 在于:傳入計(jì)算邏輯,而非傳入數(shù)據(jù)

2、lambda匿名函數(shù)

函數(shù)的定義中

  • def關(guān)鍵字,可以定義帶有名稱的函數(shù)
  • lambda關(guān)鍵字,可以定義匿名函數(shù)(無名稱)

有名稱的函數(shù),可以基于名稱重復(fù)使用

無名稱的匿名函數(shù),只可臨時使用一次

匿名函數(shù)定義語法:

lambda 傳入?yún)?shù): 函數(shù)體(一行代碼)
  • lambda是關(guān)鍵字,表示定義匿名函數(shù)
  • 傳入?yún)?shù)表示匿名函數(shù)的形式參數(shù),如:x,y表示接收2個形式參數(shù)
  • 函數(shù)體,就是函數(shù)的執(zhí)行邏輯,要注意:只能寫一行,無法寫多行代碼

Tip:lambda不用return語句,默認(rèn)直接return

# lambda 傳入?yún)?shù): 函數(shù)體(一行代碼)

def test_func(compute):
    result = compute(1, 2)
    print(f"結(jié)果是:{result}")
# 通過lambda匿名函數(shù)的形式,將匿名函數(shù)作為參數(shù)傳入
test_func(lambda x, y: x + y)
test_func(lambda x, y: x + y)

# 雖然不能重復(fù)使用 但十分簡潔
# 只要代碼是一行內(nèi)容能夠完成的 使用lambda會變得更加簡潔

小結(jié)

  1. 匿名函數(shù)使用lambda關(guān)鍵字進(jìn)行定義

  2. 定義語法:

    lambda 傳入?yún)?shù): 函數(shù)體(一行代碼)
    
  3. 注意事項(xiàng):文章來源地址http://www.zghlxwxcb.cn/news/detail-476585.html

    • 匿名函數(shù)用于臨時構(gòu)建一個函數(shù),只使用一次的場景
    • 匿名函數(shù)的定義中,函數(shù)體只能寫一行代碼,如果函數(shù)體要寫多行代碼,不可用lambda匿名函數(shù),應(yīng)使用def定義帶名函數(shù)

附:系列文章

序號 文章目錄 直達(dá)鏈接
1 列表 https://want595.blog.csdn.net/article/details/131114057
2 元組 https://want595.blog.csdn.net/article/details/131114201
3 字符串 https://want595.blog.csdn.net/article/details/131114257
4 集合 https://want595.blog.csdn.net/article/details/131114355
5 字典 https://want595.blog.csdn.net/article/details/131117668
6 切片 https://want595.blog.csdn.net/article/details/131117775
7 數(shù)據(jù)容器 https://want595.blog.csdn.net/article/details/131117719
8 函數(shù) https://want595.blog.csdn.net/article/details/131117957
9 https://want595.blog.csdn.net/article/details/131118042
10 異常捕獲 https://want595.blog.csdn.net/article/details/131117982
11 模塊 https://want595.blog.csdn.net/article/details/131118002

到了這里,關(guān)于【Python基礎(chǔ)】Python函數(shù)(匿名函數(shù))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【python基礎(chǔ)】函數(shù)-返回值

    【python基礎(chǔ)】函數(shù)-返回值

    函數(shù)并非總是直接顯示輸出,它可以處理一些數(shù)據(jù),并返回一個或一組值。函數(shù)返回的值被稱為返回值。 在函數(shù)中,可使用return將值返回到調(diào)用函數(shù)的代碼行。返回值能夠?qū)⒊绦虻拇蟛糠址敝毓ぷ饕频胶瘮?shù)中去,從而簡化主程序。函數(shù)可返回任何類型的值,包括列表和

    2024年02月09日
    瀏覽(24)
  • 【python基礎(chǔ)】—函數(shù)def()的定義與調(diào)用、參數(shù)、return返回值及變量作用域

    【python基礎(chǔ)】—函數(shù)def()的定義與調(diào)用、參數(shù)、return返回值及變量作用域

    語法: 舉例: 上面我們定義一個名字為hello的函數(shù),括號內(nèi)部是函數(shù)接收的參數(shù)name,緊接著就是函數(shù)的功能代碼。 多次調(diào)用 位置參數(shù) 這里的\\\"手拍黃瓜\\\"和\\\"大米飯\\\"是對應(yīng)參數(shù)appetizer和course的位置順序傳遞的,所以被叫作位置參數(shù),這也是最常見的參數(shù)類型。 默認(rèn)參數(shù) 注意

    2024年02月02日
    瀏覽(45)
  • python 匿名函數(shù)(lambda函數(shù))

    Python中的匿名函數(shù)是指沒有命名標(biāo)識符的函數(shù),通常被稱為lambda函數(shù)。與普通函數(shù)不同,它們是一種更加簡潔的方式來編寫小型臨時函數(shù)。在Python中,匿名函數(shù)使用 lambda 來定義,其語法如下: 其中, arguments 表示函數(shù)參數(shù),可以是一個或多個,多個參數(shù)之間用逗號分隔

    2024年02月02日
    瀏覽(21)
  • JavaScript經(jīng)典教程(七)-- JavaScript基礎(chǔ) -- 函數(shù)、argument、匿名函數(shù)、函數(shù)深入、選項(xiàng)卡

    JavaScript經(jīng)典教程(七)-- JavaScript基礎(chǔ) -- 函數(shù)、argument、匿名函數(shù)、函數(shù)深入、選項(xiàng)卡

    1、函數(shù) (1)特性 1、每個函數(shù)都有自己的作用域。 2、如果執(zhí)行該變量名,會返回自己,即返回函數(shù)本身。 3、正常調(diào)用,返回函數(shù)中的執(zhí)行結(jié)果。 當(dāng)函數(shù)中無執(zhí)行內(nèi)容時,返回默認(rèn)return=undefind;(每個函數(shù)都有默認(rèn)return=undefined) 當(dāng)函數(shù)中有執(zhí)行內(nèi)容時,返回返回值。 4、re

    2024年02月02日
    瀏覽(31)
  • python匿名函數(shù)Lambda

    Lambda函數(shù)也被稱為匿名(沒有名稱)函數(shù),它直接接受參數(shù)的數(shù)量以及使用該參數(shù)執(zhí)行的條件或操作,該參數(shù)以冒號分隔,并返回最終結(jié)果。為了在大型代碼庫上編寫代碼時執(zhí)行一項(xiàng)小任務(wù),或者在函數(shù)中執(zhí)行一項(xiàng)小任務(wù),便在正常過程中使用lambda函數(shù)。 argument_list是參數(shù)列表,

    2024年02月16日
    瀏覽(25)
  • 【Go 基礎(chǔ)篇】Go語言匿名函數(shù)詳解:靈活的函數(shù)表達(dá)式與閉包

    【Go 基礎(chǔ)篇】Go語言匿名函數(shù)詳解:靈活的函數(shù)表達(dá)式與閉包

    在Go語言中,函數(shù)是一等公民,這意味著函數(shù)可以像其他類型的值一樣被操作、傳遞和賦值。匿名函數(shù)是一種特殊的函數(shù),它沒有固定的函數(shù)名,可以在代碼中被直接定義和使用。匿名函數(shù)在Go語言中具有重要的地位,它們常用于實(shí)現(xiàn)閉包、函數(shù)式編程和并發(fā)編程等領(lǐng)域。 本

    2024年02月11日
    瀏覽(38)
  • Python趣味入門11:函數(shù)作為參數(shù)以及匿名函數(shù)

    Python里可以把函數(shù)本身當(dāng)成是參數(shù),比如Python內(nèi)置函數(shù)map可以通過傳入的函數(shù)返回值來一一映射列表集合里的元素,我們也可以在定義函數(shù)時,以調(diào)用函數(shù)的方式使用參數(shù)。 假設(shè)有一個列表1至9共有9個元素,現(xiàn)在需要求其平方數(shù)列。 map函數(shù)的示例 ? 以上的代碼,主要完成了

    2024年02月04日
    瀏覽(22)
  • python第6課(函數(shù),內(nèi)置高階函數(shù),匿名函數(shù),裝飾器)筆記

    變量名的查找規(guī)則; 在訪問變量時,先查找本地變量,然后是包裹此函數(shù)的外部函數(shù)的內(nèi)部變量,之后是全局變量,最后是內(nèi)置變量 1 在函數(shù)內(nèi)使用全局變量 2使用nonlocal聲明的變量不是局部變量,也不是全局變量,而是外部嵌套函數(shù)內(nèi)的變量 函數(shù)名是變量,它在創(chuàng)建函數(shù)時綁

    2024年02月11日
    瀏覽(28)
  • 【Python基礎(chǔ)入門篇】基本函數(shù)——os與sys模塊

    os模塊和sys模塊 os模塊負(fù)責(zé)程序與操作系統(tǒng)交互,提供訪問操作系統(tǒng)的接口 sys模塊負(fù)責(zé)程序與Python解釋器交互,用于操控Python運(yùn)行環(huán)境 待完善

    2024年01月25日
    瀏覽(25)
  • 【Python】PySpark 數(shù)據(jù)計(jì)算 ① ( RDD#map 方法 | RDD#map 語法 | 傳入普通函數(shù) | 傳入 lambda 匿名函數(shù) | 鏈?zhǔn)秸{(diào)用 )

    【Python】PySpark 數(shù)據(jù)計(jì)算 ① ( RDD#map 方法 | RDD#map 語法 | 傳入普通函數(shù) | 傳入 lambda 匿名函數(shù) | 鏈?zhǔn)秸{(diào)用 )

    在 PySpark 中 RDD 對象 提供了一種 數(shù)據(jù)計(jì)算方法 RDD#map 方法 ; 該 RDD#map 函數(shù) 可以對 RDD 數(shù)據(jù)中的每個元素應(yīng)用一個函數(shù) , 該 被應(yīng)用的函數(shù) , 可以將每個元素轉(zhuǎn)換為另一種類型 , 也可以針對 RDD 數(shù)據(jù)的 原始元素進(jìn)行 指定操作 ; 計(jì)算完畢后 , 會返回一個新的 RDD 對象 ; map 方法 , 又

    2024年02月14日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包