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)

结束。

原文地址:https://www.cnblogs.com/liusingbon/p/13096107.html