• <strike id="6sogq"><s id="6sogq"></s></strike>
  • <strike id="6sogq"></strike>

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

    400-811-9990
    手機(jī)站
    千鋒教育

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

    千鋒教育

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

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

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

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當(dāng)前位置:成都千鋒IT培訓(xùn)  >  技術(shù)干貨  >  python如何使用return語句

    python如何使用return語句

    來源:千鋒教育
    發(fā)布人:xqq
    時(shí)間: 2023-11-08 13:40:35

    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ú)運(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)載。

    猜你喜歡LIKE

    python delattr函數(shù)如何使用?

    2023-11-10

    python time.strptime的格式化

    2023-11-10

    pythonGIL在Python多線程的應(yīng)用

    2023-11-10

    最新文章NEW

    python中pdb模塊怎么用?

    2023-11-10

    Python如何截圖保存?

    2023-11-10

    python?中缺少module怎么辦?

    2023-11-10

    相關(guān)推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網(wǎng)友熱搜 更多>>