《Python语言程序设计》 —3.2.7 返回值
3.2.7 返回值
我们在前面的很多例子中都是利用print函数将计算结果输出到屏幕上,但无法再获取到这些显示在屏幕上的结果以参与其他运算。如果希望将一个函数的运算结果返回到调用函数的位置,从而可以继续用该运算结果参与其他运算,那么应使用return语句。
我们在前面的函数中虽然都没有显式地写return语句,但实际上这些函数都有一个隐式的什么数据都不返回的return语句,即return None(或直接写为return)。下面我们以
图3-2所示的零件面积计算问题为例,说明如何利用return语句将函数中的运算结果返回到函数调用的位置,以及如何使用返回结果参与其他运算,具体实现参见代码清单3-10。
代码清单3-10 return语句使用示例
1 def CalCircleArea(r): #定义函数CalCircleArea
2 return 3.14*r*r #通过return语句将计算得到的圆面积返回
3 def CalRectArea(a,b): #定义函数CalRectArea
4 return a*b #通过return语句将计算得到的长方形面积返回
5 r1,r2,d11,d12,d21,d22=10,1,4,5,6,5
6 C1=CalCircleArea(r1) #计算大圆的面积
7 C2=CalCircleArea(r2) #计算小圆的面积
8 S1=CalRectArea(d11,d12) #计算第一个长方形面积
9 S2=CalRectArea(d21,d22) #计算第二个长方形面积
10 A=C1-C2-S1-S2 #大圆面积依次减去小圆和两个长方形面积,即得到零件面积
11 print('零件面积为%.2f'%A) #将零件面积输出
程序执行完毕后,将在屏幕上输出如下结果:
零件面积为260.86
提示 这里以代码清单3-10的第8行代码为例分析函数调用和返回过程。首先,执行函数调用CalRectArea(d11,d12),转到CalRectArea函数执行,并将实参d11(=4)和d12(=5)分别传给形参a和b;然后,执行return a*b计算a*b的结果(=20)并通过return返回函数调用的位置(即将函数调用换成return的返回值);最后,执行S1=20,将函数返回值赋给S1。
对于第6~10行代码,也可以写为一行:
A= CalCircleArea(r1)-CalCircleArea(r2)-CalRectArea(d11,d12)-CalRectArea (d21,d22)
即函数的返回值不一定要赋给一个变量保存,也可以直接参与运算。
通过return不仅能够返回数值数据,也可以返回字符串、列表、元组等数据。下面的例子展示了如何返回列表和元组数据。
1 def GetList(): #定义函数GetList
2 return [1,2,3] #将包含3个元素的列表返回
3 def GetTuple(): #定义函数GetTuple
4 return (1,2,3) #将包含3个元素的元组返回
5 def GetElements(): #定义函数GetElements
6 return 1,2,3 #返回3个数值数据,实际上会将这3个数据封装成一个元组返回
7 print(type(GetList()))
8 print(GetList())
9 print(type(GetTuple()))
10 print(GetTuple())
11 print(type(GetElements()))
12 print(GetElements())
程序执行完毕后,将会在屏幕上输出如下结果:
<class 'list'>
[1, 2, 3]
<class 'tuple'>
(1, 2, 3)
<class 'tuple'>
(1, 2, 3)
从输出结果可以看到,当调用GetList函数时,返回的是列表;当调用GetTuple和GetElements函数时,返回的都是元组。
- 点赞
- 收藏
- 关注作者
评论(0)