Python的return如何理解?

時間 2021-06-01 20:12:56

1樓:runner time

return很好理解,就是你使用乙個function後要返回的值。

需要注意的是:

1.執行return後function便停止工作2.return返回的值應當通過賦予乙個變數,以使用。

比如你定義了某個function f(),return的是x,但是你想引用這個x,得另起一行,寫y=f(),然後引用y。

2樓:

defworker(a, b, c):

x = a + b

y = x * c

returny

result = worker(1, 2, 3)print(result)

defworker(a, b, c):

x = a + b

y = x * c

print(y)

result = worker(1, 2, 3)print(result)

3樓:學習學習再學習

請問一下:

def funout():

def funin():

print('ok')

return funin()

和def funout():

def funin():

print('ok')

return funin

這兩段的return 有什麼差別

4樓:

我個人的粗淺理解是,print只會把這個結果顯示出來給你瞟一眼,然後撕碎了不給你,你什麼都得不到,別看給你列印出來了,只是列印給你瞅一眼而已;而return才是真心實意的把結果交到你手上,你完全掌握了結果。

5樓:Xnane

發生了兩件事:

第一,return將棧中call之前存的位址pop給program counter,也就是將控制權交給主函式

第二,return返回乙個結果,應該是放在了某個暫存器裡面,這個結果可能是乙個數值,也可能是乙個新的位址,預設是None

6樓:

臥槽得到了1個讚!來修正下!

無意間看到這個好2的問題..寫一下我的粗淺見解..

1、函式(function)的功能是處理(process)引數(argument),從而得到乙個返回值(return)

1.1、上一點也可以這麼理解,函式是工序,引數是原材料,返回值是成品。

回答問題:

「這裡的return a + b執行了什麼操作?」

顯然執行了a+b這個操作,並把a+b返回給這個叫add的函式,使a+b成為add函式的處理結果。

「return有什麼含義,如何使用?」

函式的幾個要素包括:函式名,引數,處理過程,返回結果(return),其中處理過程不必要,但其他三個是一定有的(但是return不一定要寫,在定義函式時可以不寫return,函式會預設返回None),對應你給的例子就是函式名add,引數a和b,返回結果a+b。return的含義你參考秋菊打官司:

「俺就是要個說法(結果)嘛」或者參考函式的功能來理解。

至於如何使用,(以你的add函式為例)簡單的總結有以下幾點:

正常版:return a+b

手殘版:returna+b #報錯NameError

智障版:return a #只返回a

智障版2:return c+d #報錯NameError

任性版:return 2 #就是這麼2

任性版2:return a-b #你開心就好:)

空虛版:return #返回乙個None

7樓:

首先,你是在定義乙個函式,使用它的時候要呼叫它sum=add(3,4)

輸出sum=7

可見,return把後面表示式的結果返回給了sum重點是要明白定義函式然後使用函式,這是兩個步驟。

8樓:

return 語句就是將結果返回到呼叫的地方,並把程式控制權一起返回。

比如如果其他地方有一句

num = add(a, b)

return 語句就是把 a + b 返回到 = 右邊,並把程式控制權交給這條賦值語句,執行賦值過程。

python中的return語句到底有什麼作用?

追遠 J 不是Python中的return有什麼用,而是 函式 中的return有什麼用。假設你希望計算 x的絕對值加 5,你可能就希望有個計算絕對值的函式abs x 即abs x 5,這就要求這個絕對值必須 返回 到 abs x 這個位置上,如果你使用print,這個結果就會跑到螢幕上,abs x...

C 語言如何不用 goto 多處 return 進行錯誤處理?

王賽 如果是用C 大多數goto可以用RAII和多處return替代。如邏輯複雜點,C 11可以用scope guard加lambda,替代簡單的RAII,又可以解決一部分。 Andero if else和while break唄,不是說不能用goto。而是goto太多不方便閱讀。思路縷不順先話流程...

lisp 有類似 return 語句的東西嗎?

何幻 當然有了,而且你的思路一點都沒錯 lang racket define for each func lst call cc lambda return if null?lst return over begin func car lst for each func cdr lst 測試下 fo...