Python有返回值的函數_返回值


對函數進行調用,就會產生一個返回的值,我們一般把這個值賦給某個變量,或者放進表達式中來用;比如:

e = math.exp(1.0)       
height = radius * math.sin(radians) 

如果函數沒有返回值,更確切的講,這些函數的返回值是空(None)。

看個例子,計算給定半徑的圓的面積的函數:

$ cat a.py

#!/bin/python

import math

def area(radius):

    a = math.pi * radius**2

    return a 

radius = 3

print area(radius)

$ python a.py

28.2743338823

在有返回值的函數里面,返回語句可以包含表達式。這個返回語句的意思是:立即返回下面這個表達式作為返回值。返回語句里面的表達式可以隨便多復雜都行,所以,上面計算面積的函數可以寫成:

def area(radius):

     return math.pi * radius**2

另外,有一些臨時變量可以讓后續的調試過程更簡單。所以有時候可以多設置幾條返回語句,每一條都對應一種情況。

$ cat b.py

#!/bin/python

def absolute_value(x):

    if x < 0:

       return -x

    else:

       return x

x = "-10"

print absolute_value(x)

$ python b.py

-10

因為這些返回語句對應的是不同條件,因此實際上最終只會有一個返回動作執行,上面的例子就執行了return -x

返回語句運行的時候,函數就結束了,也不會運行任何其他的語句了。返回語句后面的代碼,執行流程里所有其他的位置都無法再觸碰了,這種代碼叫做【死亡代碼】。

在有返回值的函數里面,建議要確認一下每一種存在的可能,來讓函數觸發一個返回語句。下面例子中:

def absolute_value(x):

    if x < 0:

       return -x

    else:

       return x

這個函數就是錯誤的,因為一旦x等於0了,兩個條件都沒滿足,沒有觸發返回語句,函數就結束了。執行流程走完這個函數之后,返回的就是空(None),而本應該返回0的絕對值的。

所以添加上等於0時的if判斷:

$ cat b.py

#!/bin/python

def absolute_value(x):

    if x < 0:

       return -x

    elif x == 0:

       return 0

    else:

       return x

x = 0

print absolute_value(x)

結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM