久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > python如何使用return語句

python如何使用return語句

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-11 10:34:17 1699670057

return語句就是講結(jié)果返回到調(diào)用的地方,并把程序的控制權(quán)一起返回

程序運(yùn)行到所遇到的第一個(gè)return即返回(退出def塊),不會再運(yùn)行第二個(gè)return。

要返回兩個(gè)數(shù)值,寫成一行即可:

defa(x,y):

ifx==y:

returnx,y

printa(3,3)

>>>3,3

但是也并不意味著一個(gè)函數(shù)體中只能有一個(gè)return語句,例如:

deftest_return(x):

ifx>0:

returnx

else:

return0

函數(shù)沒有return,默認(rèn)return一個(gè)None對象。

遞歸函數(shù)中沒有return的情況:

defgcd(a,b):

ifa%b==0:

returnb

else:

gcd(b,a%b)

分析:else中沒有return就沒有出口,這個(gè)程序是自己內(nèi)部運(yùn)行,程序沒有返回值,

python和print的區(qū)別:

x=1

y=2

defadd(x,y):

z=x+y

returnz

print(add(x,y)

x=1

y=2

defadd(x,y):

z=x+y

printz

print(add(x,y))

在交互模式下,return的結(jié)果會自動(dòng)打印出來,而作為腳本單獨(dú)運(yùn)行時(shí)則需要print函數(shù)才能顯示。

默認(rèn)情況下,遇見return函數(shù)就會返回給調(diào)用者,但是try,finally情況除外:

deffunc():

try:

print98

return'ok'#函數(shù)得到了一個(gè)返回值

finally:#finally語句塊中的語句依然會執(zhí)行

print98

printfun()

輸出:

98

98

ok

函數(shù)作為返回值返回:

deflazy_sum(*args):

defsum():

x=0

forninargs:

x=x+nreturnxreturnsum

lazy_sum(1,2,3,4,5,6,7,8,9)#這時(shí)候lazy_sum并沒有執(zhí)行,而是返回一個(gè)指向求和的函數(shù)的函數(shù)名sum的內(nèi)存地址。

f=lazy_sum(1,2,3,4,5,6,7,8,9)

print(type(f))

print(f())#調(diào)用f()函數(shù),才真正調(diào)用了sum函數(shù)進(jìn)行求和,

這其實(shí)就是閉包。

返回一個(gè)函數(shù)列表:

defcount():

fs=[]

foriinrange(1,4):

deff():

returni*i

fs.append(f)

returnfs

f1,f2,f3=count()

print(f1())

print(f2())

print(f3())

輸出:

9

9

9

執(zhí)行過程:

當(dāng)i=1,執(zhí)行for循環(huán),結(jié)果返回函數(shù)f的函數(shù)地址,存在列表fs中的第一個(gè)位置上。

當(dāng)i=2,由于fs列表中第一個(gè)元素所指的函數(shù)中的i是count函數(shù)的局部變量,i也指向了2;然后執(zhí)行for循環(huán),結(jié)果返回函數(shù)f的函數(shù)地址,存在列表fs中的第二個(gè)位置上。

當(dāng)i=3,同理,在fs列表第一個(gè)和第二個(gè)元素所指的函數(shù)中的i變量指向了3;然后執(zhí)行for循環(huán),結(jié)果返回函數(shù)f的函數(shù)地址,存在列表fs中的第三個(gè)位置上。

所以在調(diào)用f1()的時(shí)候,函數(shù)中的i是指向3的:

f1():

return3*3

同理f2(),f3()結(jié)果都為9

閉包時(shí)牢記的一點(diǎn)就是:返回函數(shù)不要引用任何循環(huán)變量,或者后續(xù)會發(fā)生變化的變量。即包在里面的函數(shù)(本例為f()),不要引用外部函數(shù)(本例為count())的任何循環(huán)變量

如果一定要引入循環(huán)變量,方法是再創(chuàng)建一個(gè)函數(shù),用該函數(shù)的參數(shù)綁定循環(huán)變量當(dāng)前的值,無論該循環(huán)變量后續(xù)如何更改,已綁定到函數(shù)參數(shù)的值不變:

defcount():

fs=[]foriinrange(1,4):

deff(j):

defg():returnj*jreturng

fs.append(f(i))returnfs

f1,f2,f3=count()

print(f1())

print(f2())

print(f3())

以上內(nèi)容為大家介紹了python培訓(xùn)之如何使用return語句,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT