大爽Python入门教程 42 函数返回值 return

大爽Python入门公开课教案 点击查看教程总目录

1 情景思考

上面的函数calculate_sum是把计算的结果,
直接在函数中通过print输出了出来。

有的时候我们可能希望把结果拿出来,在函数外面来输出。

更有时候,我们需要使用结果中的值,做一些额外的计算。
比如这里想额外计算,
n=10, 100, 1000, 10000, 100000时,不同S之间的差值(绝对值)。

这个时候,就需要一种机制。
将函数执行完的数据拿出来,拿到函数外面来使用。

2 使用return

把函数中的结果拿出来,
一般使用return语句,此时叫把结果返回出来,这个结果又叫做返回值。

修改calculate_sumget_sum函数,将结果返回出来。
其代码如下

def get_sum(n):
    k = 1
    s = 0
    for i in range(n):
        s += k / (i + 1)
        k = -k

    return s

而此时调用时,要得到返回值,需要用一个变量来接住。
其调用代码示例:

s1 = get_sum(100)

此时s1就把函数中,执行完后的s的值拿到了。

3 return说明

return语句,是函数的返回语句,执行到这里函数直接终止并返回return后结果。

return可以返回多个结果,此时会打包成元组返回。
示例如下

def cal_sum_and_diff(a, b):
    s = a + b
    d = a - b
    return s, d  # same as return (s, d)

此时接收返回值可以用一个变量接收,也可以用对应个数个变量去接收。

sd = cal_sum_and_diff(10, 5)  # sd: (15, 5)
s, d = cal_sum_and_diff(10, 5)
# s:15 , d: 5

不写return,函数默认返回None(空值)。

从某种角度来讲,
函数可以看作是能计算出结果的表达式,
所以可以将其赋值给变量。

(当然,不赋值仅调用,函数也能运行。)

如果是在交互式命令行中,不赋值仅调用函数,
交互式命令行会自动将函数返回值展示出来。
(如果返回值为None,交互式命令行就不展示)

4 None说明

None是空值,是一种特殊的数据类型。
其布尔值为False
一般条件判断语句中,判断一个变量是否为None
可以使用==,

if a == None:
    ...

但更推荐使用is

if a is None:
    ...

最终代码

def get_sum(n):
    k = 1
    s = 0
    for i in range(n):
        s += k / (i + 1)
        k = -k

    return s

s0 = get_sum(10)
s1 = get_sum(100)
s2 = get_sum(1000)
s3 = get_sum(10000)

print("10->100    : %s" % (s1-s0))
print("100->1000  : %s" % (s2-s1))
print("1000->10000: %s" % (s3-s2))

输出如下

10->100    : 0.04253725867527436
100->1000  : 0.004475251249627221
1000->10000: 0.00044975250013601364
原文地址:https://www.cnblogs.com/BigShuang/p/15570873.html