網站首頁 編程語言 正文
首先,先來了解一下return
以下所有代碼都是在jupyter notebook中運行的.
自定義函數時
用return語句指定返回值,即函數運行最后得出的結果
舉個例子:
def Add(x,y): z = x+y return z
def Ad(x,y): z = x+y return x
上邊是我定義的兩個函數,除了名字不一樣之外,唯一不同的就是return后的返回值,那么運行的結果是怎樣的呢?
Add(1,2)
返回值 3
Ad(1,2)
返回值1
形成這樣結果的原因就在于Add函數的返回值是兩個參數的和,Ad函數返回的是第一個參數的值,所以函數運行最后的返回值是什么,除了函數內部代碼塊的運行之外,很重要得意一點在于自定義函數最后要求返回的值是什么。
函數代碼塊執行到return語句時,會退出函數,就算后邊還有屬于自定義函數的代碼,也不會被執行
再舉個例子:
def Add_1(x,y): z = x+y return z print(x,y)
在前邊例子的基礎上,加了一行代碼,這行代碼要達到的效果是打印出傳入的參數值,我們看下執行效果
Add_1(1,2)
返回值3
并沒有打印傳入的參數值,因為代碼執行到return語句就結束了,后邊的代碼不會被執行。
如果return后還有代碼需要被執行怎么辦?
可以將return語句放在try…finally語句中,return語句被執行后會繼續執行finally后的語句。
來,還是舉個例子:
def Add_2(x,y): try: z = x+y return z finally: print(x,y)
依然是在上一個例子的基礎上進行了一點點改動,那么來看一下運行的結果吧
(這里加上In[]和Out[]方便看)
In[2]: Add_2(1,2)
返回結果
? ? ? ?1 2
Out[2]: 3
很明顯return后的代碼也被執行了!
不加return語句會有怎樣的結果
不加return語句,就沒有返回值
舉個例子:
def Add_3(x,y): x+y
這樣自定義函數不會報錯,也可以運行,我們看一下調用函數的結果
Add_3(1,2)
執行后,不會顯示結果。那么不用return是不是就不能看到函數運行結果了?
當然不是,用print也可以顯示結果,還是舉個例子來看:
def Add_4(x,y): print(x+y)
來看下函數調用的結果:
Add_4(1,2)
返回值3
可以顯示結果,但是和其他print函數打印出來的結果一樣,沒有Out[]標識。
如果不是很理解這句話的意思也沒關系,我來看一個迷糊很多人的問題
在自定義函數中,return和print有什么區別
很重要的一點區別就在與兩者顯示出來的值的結果。
下邊直接上傳圖片了,更直觀一點
是不是能清楚的看出區別了,雖然用return和print都可以顯示交互結果,但是如果要把函數作為參數傳入別的函數時,就需要return的返回值了.
總結
原文鏈接:https://blog.csdn.net/yuzhihuan1224/article/details/100890591
相關推薦
- 2022-05-14 python中opencv支持向量機的實現_python
- 2022-06-25 在Nginx服務器上安裝SSL證書完成HTTPS請求的步驟詳解(springboot項目)_ngin
- 2022-03-01 格式化日期‘年月日-時分秒’方法
- 2022-07-22 ubuntu操作系統安裝docker部署sqllabs靶機
- 2022-09-30 Nginx使用ngx_http_upstream_module實現負載均衡功能示例_nginx
- 2022-06-12 C#集合之集(set)的用法_C#教程
- 2023-10-17 uniapp通過功能性編碼跳轉到原生的app頁面
- 2022-10-12 Python數據分析matplotlib折線圖案例處理_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支