python自定義函數(shù)中的return和print使用及說(shuō)明
首先,先來(lái)了解一下return
以下所有代碼都是在jupyter notebook中運(yùn)行的.
自定義函數(shù)時(shí)
用return語(yǔ)句指定返回值,即函數(shù)運(yùn)行最后得出的結(jié)果
舉個(gè)例子:
def Add(x,y): z = x+y return z
def Ad(x,y): z = x+y return x
上邊是我定義的兩個(gè)函數(shù),除了名字不一樣之外,唯一不同的就是return后的返回值,那么運(yùn)行的結(jié)果是怎樣的呢?
Add(1,2)
返回值 3
Ad(1,2)
返回值1
形成這樣結(jié)果的原因就在于Add函數(shù)的返回值是兩個(gè)參數(shù)的和,Ad函數(shù)返回的是第一個(gè)參數(shù)的值,所以函數(shù)運(yùn)行最后的返回值是什么,除了函數(shù)內(nèi)部代碼塊的運(yùn)行之外,很重要得意一點(diǎn)在于自定義函數(shù)最后要求返回的值是什么。
函數(shù)代碼塊執(zhí)行到return語(yǔ)句時(shí),會(huì)退出函數(shù),就算后邊還有屬于自定義函數(shù)的代碼,也不會(huì)被執(zhí)行
再舉個(gè)例子:
def Add_1(x,y): z = x+y return z print(x,y)
在前邊例子的基礎(chǔ)上,加了一行代碼,這行代碼要達(dá)到的效果是打印出傳入的參數(shù)值,我們看下執(zhí)行效果
Add_1(1,2)
返回值3
并沒(méi)有打印傳入的參數(shù)值,因?yàn)榇a執(zhí)行到return語(yǔ)句就結(jié)束了,后邊的代碼不會(huì)被執(zhí)行。
如果return后還有代碼需要被執(zhí)行怎么辦?
可以將return語(yǔ)句放在try…finally語(yǔ)句中,return語(yǔ)句被執(zhí)行后會(huì)繼續(xù)執(zhí)行finally后的語(yǔ)句。
來(lái),還是舉個(gè)例子:
def Add_2(x,y): try: z = x+y return z finally: print(x,y)
依然是在上一個(gè)例子的基礎(chǔ)上進(jìn)行了一點(diǎn)點(diǎn)改動(dòng),那么來(lái)看一下運(yùn)行的結(jié)果吧
(這里加上In[]和Out[]方便看)
In[2]: Add_2(1,2)
返回結(jié)果
1 2
Out[2]: 3
很明顯return后的代碼也被執(zhí)行了!
不加return語(yǔ)句會(huì)有怎樣的結(jié)果
不加return語(yǔ)句,就沒(méi)有返回值
舉個(gè)例子:
def Add_3(x,y): x+y
這樣自定義函數(shù)不會(huì)報(bào)錯(cuò),也可以運(yùn)行,我們看一下調(diào)用函數(shù)的結(jié)果
Add_3(1,2)
執(zhí)行后,不會(huì)顯示結(jié)果。那么不用return是不是就不能看到函數(shù)運(yùn)行結(jié)果了?
當(dāng)然不是,用print也可以顯示結(jié)果,還是舉個(gè)例子來(lái)看:
def Add_4(x,y): print(x+y)
來(lái)看下函數(shù)調(diào)用的結(jié)果:
Add_4(1,2)
返回值3
可以顯示結(jié)果,但是和其他print函數(shù)打印出來(lái)的結(jié)果一樣,沒(méi)有Out[]標(biāo)識(shí)。
如果不是很理解這句話的意思也沒(méi)關(guān)系,我來(lái)看一個(gè)迷糊很多人的問(wèn)題
在自定義函數(shù)中,return和print有什么區(qū)別
很重要的一點(diǎn)區(qū)別就在與兩者顯示出來(lái)的值的結(jié)果。
下邊直接上傳圖片了,更直觀一點(diǎn)
是不是能清楚的看出區(qū)別了,雖然用return和print都可以顯示交互結(jié)果,但是如果要把函數(shù)作為參數(shù)傳入別的函數(shù)時(shí),就需要return的返回值了.
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中時(shí)間datetime的處理與轉(zhuǎn)換用法總結(jié)
今天小編就為大家分享一篇關(guān)于Python中時(shí)間datetime的處理與轉(zhuǎn)換用法總結(jié),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02python3爬蟲(chóng)中多線程的優(yōu)勢(shì)總結(jié)
在本篇文章里小編給大家分享了一篇關(guān)于python3爬蟲(chóng)中多線程的優(yōu)勢(shì)總結(jié)內(nèi)容,需要的朋友們可以參考學(xué)習(xí)下。2020-11-11python批量設(shè)置多個(gè)Excel文件頁(yè)眉頁(yè)腳的腳本
這篇文章主要介紹了python批量設(shè)置多個(gè)Excel文件頁(yè)眉頁(yè)腳的源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Keras搭建Mask?R-CNN實(shí)例分割平臺(tái)實(shí)現(xiàn)源碼
這篇文章主要為大家介紹了Keras搭建Mask?R-CNN實(shí)例分割平臺(tái)實(shí)現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python基于sftp及rsa密匙實(shí)現(xiàn)遠(yuǎn)程拷貝文件的方法
這篇文章主要介紹了Python基于sftp及rsa密匙實(shí)現(xiàn)遠(yuǎn)程拷貝文件的方法,結(jié)合實(shí)例形式分析了基于RSA秘鑰遠(yuǎn)程登陸及文件操作的相關(guān)技巧,需要的朋友可以參考下2016-09-09pytorch教程resnet.py的實(shí)現(xiàn)文件源碼分析
torchvision.models這個(gè)包中包含alexnet、densenet、inception、resnet、squeezenet、vgg等常用的網(wǎng)絡(luò)結(jié)構(gòu),并且提供了預(yù)訓(xùn)練模型,可以通過(guò)簡(jiǎn)單調(diào)用來(lái)讀取網(wǎng)絡(luò)結(jié)構(gòu)和預(yù)訓(xùn)練模型2021-09-09python錄音并調(diào)用百度語(yǔ)音識(shí)別接口的示例
這篇文章主要介紹了python錄音并調(diào)用百度語(yǔ)音識(shí)別接口的示例,幫助大家更好的理解和利用python處理音頻,感興趣的朋友可以了解下2020-12-12python實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07