大爽Python入门公开课教案 点击查看教程总目录
1 情景思考
上面的函数calculate_sum
是把计算的结果,
直接在函数中通过print
输出了出来。
有的时候我们可能希望把结果拿出来,在函数外面来输出。
更有时候,我们需要使用结果中的值,做一些额外的计算。
比如这里想额外计算,
n=10, 100, 1000, 10000, 100000时,不同S之间的差值(绝对值)。
这个时候,就需要一种机制。
将函数执行完的数据拿出来,拿到函数外面来使用。
2 使用return
把函数中的结果拿出来,
一般使用return
语句,此时叫把结果返回出来,这个结果又叫做返回值。
修改calculate_sum
为get_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