日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

python自定義函數(shù)中的return和print使用及說明_python

作者:敲來敲去CC ? 更新時間: 2023-02-10 編程語言

首先,先來了解一下return

以下所有代碼都是在jupyter notebook中運(yùn)行的.

自定義函數(shù)時

用return語句指定返回值,即函數(shù)運(yùn)行最后得出的結(jié)果

舉個例子:

def Add(x,y):
    z = x+y
    return z
def Ad(x,y):
   z = x+y
   return x

上邊是我定義的兩個函數(shù),除了名字不一樣之外,唯一不同的就是return后的返回值,那么運(yùn)行的結(jié)果是怎樣的呢?

Add(1,2)

返回值 3

Ad(1,2)

返回值1

形成這樣結(jié)果的原因就在于Add函數(shù)的返回值是兩個參數(shù)的和,Ad函數(shù)返回的是第一個參數(shù)的值,所以函數(shù)運(yùn)行最后的返回值是什么,除了函數(shù)內(nèi)部代碼塊的運(yùn)行之外,很重要得意一點(diǎn)在于自定義函數(shù)最后要求返回的值是什么。

函數(shù)代碼塊執(zhí)行到return語句時,會退出函數(shù),就算后邊還有屬于自定義函數(shù)的代碼,也不會被執(zhí)行

再舉個例子:

def Add_1(x,y):
   z = x+y
   return z
   print(x,y)

在前邊例子的基礎(chǔ)上,加了一行代碼,這行代碼要達(dá)到的效果是打印出傳入的參數(shù)值,我們看下執(zhí)行效果

Add_1(1,2)

返回值3

并沒有打印傳入的參數(shù)值,因?yàn)榇a執(zhí)行到return語句就結(jié)束了,后邊的代碼不會被執(zhí)行。

如果return后還有代碼需要被執(zhí)行怎么辦?

可以將return語句放在try…finally語句中,return語句被執(zhí)行后會繼續(xù)執(zhí)行finally后的語句。

來,還是舉個例子:

def Add_2(x,y):
    try:
        z = x+y
        return z
    finally:
        print(x,y)

依然是在上一個例子的基礎(chǔ)上進(jìn)行了一點(diǎn)點(diǎn)改動,那么來看一下運(yùn)行的結(jié)果吧

(這里加上In[]和Out[]方便看)

In[2]: Add_2(1,2)

返回結(jié)果

? ? ? ?1 2
Out[2]: 3

很明顯return后的代碼也被執(zhí)行了!

不加return語句會有怎樣的結(jié)果

不加return語句,就沒有返回值

舉個例子:

def Add_3(x,y):
    x+y

這樣自定義函數(shù)不會報錯,也可以運(yùn)行,我們看一下調(diào)用函數(shù)的結(jié)果

Add_3(1,2)

執(zhí)行后,不會顯示結(jié)果。那么不用return是不是就不能看到函數(shù)運(yùn)行結(jié)果了?

當(dāng)然不是,用print也可以顯示結(jié)果,還是舉個例子來看:

def Add_4(x,y):
   print(x+y)

來看下函數(shù)調(diào)用的結(jié)果:

Add_4(1,2)

返回值3

可以顯示結(jié)果,但是和其他print函數(shù)打印出來的結(jié)果一樣,沒有Out[]標(biāo)識。

如果不是很理解這句話的意思也沒關(guān)系,我來看一個迷糊很多人的問題

在自定義函數(shù)中,return和print有什么區(qū)別

很重要的一點(diǎn)區(qū)別就在與兩者顯示出來的值的結(jié)果。

下邊直接上傳圖片了,更直觀一點(diǎn)

是不是能清楚的看出區(qū)別了,雖然用return和print都可以顯示交互結(jié)果,但是如果要把函數(shù)作為參數(shù)傳入別的函數(shù)時,就需要return的返回值了.

總結(jié)

原文鏈接:https://blog.csdn.net/yuzhihuan1224/article/details/100890591

欄目分類
最近更新