Python有返回值的函数_返回值
对函数进行调用,就会产生一个返回的值,我们一般把这个值赋给某个变量,或者放进表达式中来用;比如:
如果函数没有返回值,更确切的讲,这些函数的返回值是空(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
在有返回值的函数里面,返回语句可以包含表达式。这个返回语句的意思是:立即返回下面这个表达式作为返回值。返回语句里面的表达式可以随便多复杂都行,所以,上面计算面积的函数可以写成:
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)
结束。