国产网曝门99视频在线看_免费看片a级毛片免费看_4hu四虎永久在线观看_高清无套内精线观看456_国产欧美亚洲日韩久久福利_av在线无码观看另类重口_欧美精品一二三区较多收藏_欧美老熟妇伦视频_婷婷六月综合激情_最新国产成人野战在线观看


站長(zhǎng)在線零基礎(chǔ)Python完全自學(xué)教程23:函數(shù)的返回值、作用域和匿名函數(shù)

導(dǎo)讀:歡迎你來到站長(zhǎng)學(xué)堂,學(xué)習(xí)站長(zhǎng)在線出品的在線課程《零基礎(chǔ) Python完全自學(xué)教程》今天給大家分享的是第23課《函數(shù)的返回值、作用域和匿名函數(shù)》。本文是一個(gè)大課程分成了下面4節(jié)小課程:Python中函數(shù)的返回值、Python函數(shù)中的局部變量、Python函數(shù)中的全局變量、Python函數(shù)中的匿名函數(shù)等內(nèi)容。

歡迎你來到站長(zhǎng)學(xué)堂,學(xué)習(xí)站長(zhǎng)在線出品的在線課程《零基礎(chǔ) python完全自學(xué)教程》今天給大家分享的是第23課《函數(shù)返回值、作用域匿名函數(shù)》。本文是一個(gè)大課程分成了下面4節(jié)小課程:Python中函數(shù)的返回值、Python函數(shù)中的局部變量、Python函數(shù)中的全局變量、Python函數(shù)中的匿名函數(shù)等內(nèi)容。


23.1、Python中函數(shù)的返回值

歡迎你來到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python函數(shù)返回值》。本文的主要內(nèi)容有:函數(shù)的返回值的含義、函數(shù)設(shè)置返回值的作用、return語句位置與多條 return語句的總結(jié)。


在前面的Python課程中,我們創(chuàng)建的函數(shù)都只是為我們做一些事,做完了就結(jié)束。但實(shí)際上,有時(shí)還需要對(duì)事情的結(jié)果進(jìn)行獲取。

列如,你在炒菜的時(shí)候發(fā)現(xiàn)沒有鹽了,你拿出2塊錢,叫你兒子去樓下的小賣店買一包鹽回來。在這個(gè)例子中,你給你兒子2塊錢,就相當(dāng)于調(diào)用函數(shù)參數(shù)傳遞。你兒子把這包鹽買回來是目標(biāo),這時(shí)候這包鹽就是返回值。

23.1.1、Python中函數(shù)的返回值的含義

Python中函數(shù)的返回值就是程序中函數(shù)完成一件事情后,最后給調(diào)用者的結(jié)果。

23.1.2、Python為函數(shù)設(shè)置返回值的作用

Python為函數(shù)設(shè)置返回值的作用就是將函數(shù)的處理結(jié)果返回給調(diào)用它的函數(shù)。

在Python中,可以在函數(shù)體內(nèi)使用return語句為函數(shù)指定返回值。該返回值可以是任意類型,并且無論return語句出現(xiàn)在函數(shù)的什么位置,只要得到執(zhí)行,就會(huì)直接結(jié)束函數(shù)的執(zhí)行。

return語句的語法格式如下:

return [value]

其中,相關(guān)參數(shù)說明如下:

return:為函數(shù)指定返回值后,在調(diào)用函數(shù)時(shí),可以把它賦給一個(gè)變量(如result),用于保存函數(shù)的返回結(jié)果。如果返回一個(gè)值,那么result中保存的就是返回的一個(gè)值,該值可以是任意類型。如果返回多個(gè)值,那么result中保存的是一個(gè)元組。

value:可選參數(shù),用于指定要返回的值,可以返回一個(gè)值,也可返回多個(gè)值。

站長(zhǎng)在線特別提醒:當(dāng)函數(shù)中沒有return語句時(shí),或者省略了return語句的參數(shù)時(shí),將返回None,即返回空值。

def a(x,y):
    num = x + y
    return
print(a(1,2))

運(yùn)行結(jié)果為:

None
>>> 

print僅僅是打印在控制臺(tái),而return則是將return后面的部分作為返回值:作為函數(shù)的輸出,可以用變量接走,繼續(xù)使用該返回值做其它事。

函數(shù)需要先定義后調(diào)用,函數(shù)體中return語句的結(jié)果就是返回值。如果一個(gè)函數(shù)沒有reutrn語句,其實(shí)它有一個(gè)隱含的return語句,返回值是None,類型也是'Nonetype'。

23.1.3、return語句位置與多條 return語句的總結(jié):

1、python函數(shù)使用return語句返回 "返回值",可以將其賦給其它變量作其它的用處;

2、所有函數(shù)都有返回值,如果沒有return語句,會(huì)隱式地調(diào)用 return None 作為返回值;

3、一個(gè)函數(shù)可以存在多條return語句,但只有一條可以被執(zhí)行,如果沒有一條reutrn語句被執(zhí)行,同樣會(huì)隱式調(diào)用return None作為返回值;

4、如果有必要,可以顯式調(diào)用return None明確返回一個(gè)None(空值對(duì)象)作為返回值,可以簡(jiǎn)寫為return,不過python中簡(jiǎn)潔即美德,所以一般能不寫就不寫;

5、如果函數(shù)執(zhí)行了return語句,函數(shù)會(huì)立刻返回,結(jié)束調(diào)用,return之后的其它語句都不會(huì)被執(zhí)行了(可用于結(jié)束代碼塊)。


23.2、在Python函數(shù)中的局部變量詳解

歡迎你來到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《在Python函數(shù)中的局部變量詳解》。本文的主要內(nèi)容有:變量的作用域的概念、局部變量的概念、局部變量的舉例。


要說起Python中的局部變量,首先要知道變量的作用域?那什么是變量的作用域呢?

23.2.1、變量的作用域的概念:

變量的作用域是指變量有效作用的區(qū)域, 如果超出該區(qū)域,再次訪問時(shí)就會(huì)出錯(cuò)。

按照作用域的不同,變量可分為局部變量和全局變量。

在本文中,我們學(xué)習(xí)局部變量。

23.2.2、局部變量的概念:

局部變量是指在函數(shù)內(nèi)部定義并使用的變量,只能在函數(shù)內(nèi)部使用有效。

怎么理解這句話呢?

這樣說吧:函數(shù)內(nèi)部的名字,只是在函數(shù)運(yùn)行時(shí)才會(huì)創(chuàng)建,在函數(shù)運(yùn)行之前或者運(yùn)行結(jié)束之后,所有的名字都將不存在。如果函數(shù)外部使用函數(shù)內(nèi)部定義的變量,就會(huì)出現(xiàn)NameError錯(cuò)誤。

23.2.3、局部變量的舉例:

下面舉一個(gè)例子來說明:

定義一個(gè)函數(shù)為a ,在該函數(shù)內(nèi)部定義一個(gè)變量b(局部變量),并為變量b賦值,然后輸出該變量,最后在函數(shù)外部輸出該變量,代碼如下:

def a():                                   # 定義一個(gè)名稱為a()的函數(shù)
    b = "我愛Python,我在學(xué)學(xué)習(xí)Python!"   # 給內(nèi)部自定義變量b賦值
    print('函數(shù)內(nèi)部局部變量b=',b)          # 輸出函數(shù)內(nèi)部局部變量的值
a()                                        # 調(diào)用該函數(shù)
print('函數(shù)外部局部變量b=',b)              # 輸出函數(shù)外部局部變量的值

運(yùn)行結(jié)果如下:

函數(shù)內(nèi)部局部變量b= 我愛Python,我在學(xué)學(xué)習(xí)Python!
Traceback (most recent call last):
  File "D:\Python\Python310\Doc\000.py", line 5, in <module>
    print('函數(shù)外部局部變量b=',b)              # 輸出函數(shù)外部局部變量的值
NameError: name 'b' is not defined
>>> 

根據(jù)上面的結(jié)果,我們看見了兩個(gè)不同的輸出結(jié)果,第一個(gè)輸出是正確的,沒有任何問題,但是第二個(gè)輸出就會(huì)出現(xiàn)“NameError”錯(cuò)誤了。

翻譯“name 'b' is not defined”的意思是:未定義名稱“b”,也就是說訪問的變量b不存在。

23.3、在Python函數(shù)中的全局變量詳解

歡迎你來到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python中的局部變量詳解》。本文的主要內(nèi)容有:什么是全局變量、在函數(shù)外部定義的變量是全局變量、在函數(shù)內(nèi)部定義中添加global關(guān)鍵詞后變成全局變量。


我們?cè)谏瞎?jié)課程《在Python函數(shù)中的局部變量詳解》中,說到了局部變量,這個(gè)非常的簡(jiǎn)單,局部變量是指在函數(shù)內(nèi)部定義并使用的變量,只能在函數(shù)內(nèi)部使用有效。本節(jié)課就來講解一下全局變量。

23.3.1、什么是全局變量?

在Python中,全局變量指的是可以作用于函數(shù)內(nèi)部和外部的變量。

在這里有兩種情況:在函數(shù)的外部定義和內(nèi)部定義添加global關(guān)鍵詞變成全局變量。

接下來,站長(zhǎng)在線將一一解讀這兩種情況。

23.3.2、在函數(shù)外部定義的變量是全局變量。

假設(shè)一個(gè)變量在函數(shù)的外部定義,那么這個(gè)函數(shù)就可以在函數(shù)的內(nèi)部訪問,也可以在函數(shù)的外部的訪問。

示例:定義一個(gè)全局變量b,然后定義一個(gè)函數(shù)a,最后在該函數(shù)的內(nèi)部和外部輸出全局變量m的值,代碼如下:

b  = '我愛Python,我在學(xué)習(xí)Python!'      # 定義全局變量
def a():                                 # 定義函數(shù)
    print('函數(shù)內(nèi)部全局變量b=',b)        # 在函數(shù)內(nèi)部輸出全局變量
a()
print('函數(shù)外部全局變量b=',b)            # 在函數(shù)外部輸出全局變量

運(yùn)行結(jié)果如下:

函數(shù)內(nèi)部全局變量b= 我愛Python,我在學(xué)習(xí)Python!
函數(shù)外部全局變量b= 我愛Python,我在學(xué)習(xí)Python!
>>> 

23.3.3、在函數(shù)內(nèi)部定義中添加global關(guān)鍵詞后變成全局變量。

在Python中,內(nèi)部定義的函數(shù)中,添加關(guān)鍵詞global后,改變量就變成了全局變量。在函數(shù)的外部也可以訪問到該變量,同時(shí)還可以在函數(shù)的內(nèi)部進(jìn)行修改。

示例:定義相同名稱不同內(nèi)容的全局變量和局部變量b,并輸出它們的值:

b  = '我愛Python,我在學(xué)習(xí)Python!'      # 定義全局變量
print('函數(shù)外部全局變量b=',b)            # 在函數(shù)外部輸出全局變量
def a():                                 # 定義函數(shù)
    b  = '人生苦短,我用Pyhon!'         # 定義局部變量
    print('函數(shù)內(nèi)部局部變量b=',b)        # 在函數(shù)內(nèi)部輸出全局變量
a()                                      # 調(diào)用函數(shù)
print('函數(shù)外部全局變量b=',b)            # 在函數(shù)外部輸出全局變量

運(yùn)行結(jié)果如下:

函數(shù)外部全局變量b= 我愛Python,我在學(xué)習(xí)Python!
函數(shù)內(nèi)部局部變量b= 人生苦短,我用Pyhon!
函數(shù)外部全局變量b= 我愛Python,我在學(xué)習(xí)Python!
>>> 

從上面的結(jié)果可以看出,內(nèi)部變量(局部變量)可以和外部變量(全局變量)重名,不影響全局變量的值。

當(dāng)然在函數(shù)內(nèi)部變量前面添加關(guān)鍵字global,就變成了全局變量了,代碼如下:

b  = '我愛Python,我在學(xué)習(xí)Python!'      # 定義全局變量
print('函數(shù)外部全局變量b=',b)            # 在函數(shù)外部輸出全局變量
def a():                                 # 定義函數(shù)
    global b                             # 添加global關(guān)鍵字
    b  = '人生苦短,我用Pyhon!'         # 定義局部變量
    print('函數(shù)內(nèi)部全局變量b=',b)        # 在函數(shù)內(nèi)部輸出全局變量
a()                                      # 調(diào)用函數(shù)
print('函數(shù)外部全局變量b=',b)            # 在函數(shù)外部輸出全局變量

運(yùn)行結(jié)果如下:

函數(shù)外部全局變量b= 我愛Python,我在學(xué)習(xí)Python!
函數(shù)內(nèi)部全局變量b= 人生苦短,我用Pyhon!
函數(shù)外部全局變量b= 人生苦短,我用Pyhon!
>>> 

從上面的結(jié)果可以看出,在函數(shù)的內(nèi)部也可以修改全局變量的值。但是,站長(zhǎng)在線在這里有一個(gè)提醒:

站長(zhǎng)在線提醒:雖然在Python里面可以讓全局變量和局部變量重名,但是,我們?cè)趯?shí)際開發(fā)中,盡量避免兩個(gè)變量重名,免得搞混、出錯(cuò)。

23.4、Python函數(shù)中的匿名函數(shù)

歡迎你來到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python函數(shù)中的匿名函數(shù)詳解》。本文的主要內(nèi)容有:匿名函數(shù)的定義、匿名函數(shù)的表達(dá)式、匿名函數(shù)的注意點(diǎn)、匿名函數(shù)的優(yōu)點(diǎn)、匿名函數(shù)的應(yīng)用舉例。


23.4.1、匿名函數(shù)的定義

所謂匿名函數(shù)就是沒有名字的函數(shù),在Python中使用lambda表示創(chuàng)建匿名函數(shù)。

23.4.2、匿名函數(shù)的表達(dá)式

name = lambda [arg1 [,arg2,...,argn]]:expression

相關(guān)參數(shù)如下:

name:用于調(diào)用lambda表達(dá)式。

[arg1 [,arg2,...,argn]]:可選參數(shù),用于指定要傳遞的參數(shù)列表,多個(gè)參數(shù)間使用逗號(hào)“,”分隔。

expression:必選參數(shù),用于指定一個(gè)實(shí)現(xiàn)具體功能的表達(dá)式。如果有參數(shù),那么在該表達(dá)式中將應(yīng)用這些參數(shù)。

23.4.3、匿名函數(shù)的注意點(diǎn)

lambda 函數(shù)可以接收任意多個(gè)參數(shù) (包括可選參數(shù)) 并且返回單個(gè)表達(dá)式的值。lambda 函數(shù)不能包含命令,包含的表達(dá)式不能超過一個(gè)。

23.4.4、匿名函數(shù)的優(yōu)點(diǎn):

23.4.4.1、使用Python寫一些腳本時(shí),使用lambda可以省去定義函數(shù)的過程,讓代碼更加精簡(jiǎn)。

23.4.4.2、對(duì)于一些抽象的,不會(huì)被別的地方再重復(fù)使用的函數(shù),有時(shí)候函數(shù)起個(gè)名字也是個(gè)難題,使用lambda不需要考慮命名的問題

23.4.4.3、使用lambda在某些時(shí)候然后代碼更容易理解

示例:求一個(gè)兩個(gè)函數(shù)之和的函數(shù),普通的函數(shù)定義如下:

def add(x, y):
    return x+ y
print(add(1,2))

運(yùn)行結(jié)果為:

3
>>> 

使用匿名函數(shù)簡(jiǎn)化為:

add = lambda x,y:x+y
print(add(1,2))

運(yùn)行的結(jié)果為:

3
>>> 

23.4.5、匿名函數(shù)的應(yīng)用舉例

內(nèi)置函數(shù) max() 求最大值,min()求最小值sort()排序,map() 映射, reduce 合并, filter() 過濾等經(jīng)常應(yīng)用到。

本文以使用lambda表達(dá)式實(shí)現(xiàn)對(duì)學(xué)生成績(jī)列表的排序?yàn)槔?,講解匿名函數(shù)的應(yīng)用。

列:定義一個(gè)保存學(xué)生成績(jī)的列表,每個(gè)學(xué)生的信息保存在一個(gè)字典中,根據(jù)學(xué)生的成績(jī)排序。

student = [
    {'id': '001', 'name': '張三', '語文': 95, '數(shù)學(xué)': 98, '外語': 90},
    {'id': '002', 'name': '李四', '語文': 90, '數(shù)學(xué)': 92, '外語': 88},
    {'id': '003', 'name': '王五', '語文': 92, '數(shù)學(xué)': 93, '外語': 96},
    {'id': '004', 'name': '趙六', '語文': 91, '數(shù)學(xué)': 90, '外語': 86}
    ]   # 保存學(xué)生成績(jī)的列表
student.sort(key=lambda x :x['語文']+x['數(shù)學(xué)']+x['外語'],reverse = True)# 按總成績(jī)排序
for item in student:  # 遍歷輸出排序結(jié)果
    print(item)

運(yùn)行結(jié)果如下:

{'id': '001', 'name': '張三', '語文': 95, '數(shù)學(xué)': 98, '外語': 90}
{'id': '003', 'name': '王五', '語文': 92, '數(shù)學(xué)': 93, '外語': 96}
{'id': '002', 'name': '李四', '語文': 90, '數(shù)學(xué)': 92, '外語': 88}
{'id': '004', 'name': '趙六', '語文': 91, '數(shù)學(xué)': 90, '外語': 86}
>>> 

到此為止,有關(guān)函數(shù)的相關(guān)知識(shí)就講解完成了。



本文地址:http://003188.cn/python23.html
碼字不易,打個(gè)賞唄
楊澤業(yè)感謝你的支持!

猜你喜歡

PHP8的匿名函數(shù)-PHP8知識(shí)詳解

導(dǎo)讀:PHP8引入了匿名函數(shù)(AnonymousFunctions),它是一種創(chuàng)建短生命周期的函數(shù),不需要命名,并且可以在其作用域內(nèi)直接使用。以下是在PHP8中使用匿名函數(shù)的知識(shí)要點(diǎn)。

2023-08-27  分類:PHP學(xué)堂  瀏覽:801次


函數(shù)的參數(shù)傳遞和返回值-PHP8知識(shí)詳解

導(dǎo)讀:本文學(xué)習(xí)的是《PHP8知識(shí)詳解》中的《函數(shù)的參數(shù)傳遞和返回值》。主要包括:向函數(shù)傳遞參數(shù)值、向函數(shù)傳遞參數(shù)引用、函數(shù)的返回值。

2023-08-23  分類:PHP學(xué)堂  瀏覽:765次


域名pythonw.cn出售

域名pythonw.cn的詳細(xì)信息:Python網(wǎng)

2022-08-06  分類:域名出售  瀏覽:1375次


站長(zhǎng)在線Python教程:Python中類定義詳解

導(dǎo)讀:歡迎你來到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python中類定義詳解》。

2022-02-23  分類:Python學(xué)堂  瀏覽:1898次


站長(zhǎng)在線Python教程:python中面向?qū)ο笙嚓P(guān)概述詳解

導(dǎo)讀:歡迎你來到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《python中面向?qū)ο笙嚓P(guān)概述詳解》。本文的主要內(nèi)容有:面向?qū)ο笫鞘裁?、面向?qū)ο笾械膶?duì)象是什么、Python中的類是什么、面向?qū)ο缶幊痰奶攸c(diǎn)有哪些?

2022-02-14  分類:Python學(xué)堂  瀏覽:1616次


站長(zhǎng)在線零基礎(chǔ)Python完全自學(xué)教程23:函數(shù)的返回值、作用域和匿名函數(shù)

導(dǎo)讀:歡迎你來到站長(zhǎng)學(xué)堂,學(xué)習(xí)站長(zhǎng)在線出品的在線課程《零基礎(chǔ) Python完全自學(xué)教程》今天給大家分享的是第23課《函數(shù)的返回值、作用域和匿名函數(shù)》。本文是一個(gè)大課程分成了下面4節(jié)小課程:Python中函數(shù)的返回值、Python函數(shù)中的局部變量、Python函數(shù)中的全局變量、Python函數(shù)中的匿名函數(shù)等內(nèi)容。

2022-02-09  分類:Python學(xué)堂  瀏覽:1487次


站長(zhǎng)在線Python教程:Python函數(shù)中的匿名函數(shù)詳解

歡迎你來到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python函數(shù)中的匿名函數(shù)詳解》。本文的主要內(nèi)容有:匿名函數(shù)的定義、匿名函數(shù)的表達(dá)式、匿名函數(shù)的注意點(diǎn)、匿名函數(shù)的優(yōu)點(diǎn)、匿名函數(shù)的應(yīng)用舉例。

2022-02-01  分類:Python學(xué)堂  瀏覽:1602次


站長(zhǎng)在線Python教程精講:在Python函數(shù)中的全局變量詳解

歡迎你來到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python中的全局變量詳解》。本文的主要內(nèi)容有:什么是全局變量、在函數(shù)外部定義的變量是全局變量、在函數(shù)內(nèi)部定義中添加global關(guān)鍵詞后變成全局變量。

2022-01-10  分類:Python學(xué)堂  瀏覽:1718次


站長(zhǎng)在線Python教程精講:在Python函數(shù)中的局部變量詳解

導(dǎo)讀:歡迎你來到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《在Python函數(shù)中的局部變量詳解》。本文的主要內(nèi)容有:變量的作用域的概念、局部變量的概念、局部變量的舉例。

2022-01-06  分類:Python學(xué)堂  瀏覽:1620次


Python常用英語及用法

站長(zhǎng)在線站長(zhǎng),準(zhǔn)備系統(tǒng)的學(xué)習(xí)Python知識(shí),但是對(duì)我來說,英語實(shí)在是太差了,當(dāng)然我知道的是,不僅僅我,很多人在學(xué)習(xí)Python的時(shí)候,也是不知道這些英語單詞的意思與用法的,在這里站長(zhǎng)在線站長(zhǎng)就把這些英語整理出來,把英語以及中文意思、用法一起貼出來,讓大家一起來學(xué)習(xí)。

2022-01-02  分類:Python學(xué)堂  瀏覽:1833次