zoukankan      html  css  js  c++  java
  • 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)

    结束。

  • 相关阅读:
    洛谷 1498 南蛮图腾——模拟
    bzoj 4198 [Noi2015]荷马史诗——哈夫曼树
    bzoj 1026 [SCOI2009]windy数——数位dp水题
    bzoj 1045 [HAOI2008] 糖果传递——设变量推式子
    bzoj 4521 [Cqoi2016]手机号码——数位dp
    bzoj1044 [HAOI2008]木棍分割——前缀和优化DP
    bzoj1090 [SCOI2003]字符串折叠——区间DP
    bzoj1911 [Apio2010]特别行动队——斜率优化DP
    bzoj1025 [SCOI2009]游戏——因数DP
    bzoj1207 [HNOI2004]打鼹鼠——LIS
  • 原文地址:https://www.cnblogs.com/liusingbon/p/13096107.html
Copyright © 2011-2022 走看看