第二十三节 嵌套函数调用Nested Functions Calls
前言实践前言
当一个函数的返回结果是另一个函数的输入的时候,我们就可以采用嵌套调用的方式来书写代码。举例来说,y=f(x)=x2,z=g(y)=yy=f(x)=x^2,z=g(y)=\sqrt{y}y=f(x)=x2,z=g(y)=y此时我们可以写作z=g(y)=g(f(x))=x2z=g(y)=g(f(x))=\sqrt{x^2}z=g(y)=g(f(x))=x2,这便是嵌套调用的数学表示。
实践
我们这里要求对用户输入的数字先取绝对值,然后进行四舍五入为整数并输出到控制台。通常情况下我们的程序为:
num = input("Enter a number: ")num = float(num)num = abs(num)num = round(num)print(num)>>> Enter a number: -3.14>>> 3
其执行顺序为,获取用户输入并保存到变量num
中,由于从键盘获取到的输入均为str
型,所以需要对其强制类型转换为float
型,然后我们对得到的数值型变量取绝对值,最后再做四舍五入运算得到计算结果3。我们如果用嵌套函数调用的方式书写上述代码就可以用一行代码加以表示:
print(round(abs(float(input("Enter a number: ")))))>>> Enter a number: -3.14>>> 3
可见两段代码的运行结果是一致的。使用嵌套调用可以简化代码结构,但是可读性会随之降低。注意,嵌套调用的时候内层函数的返回结果必须是外层函数的输入,在读这种代码的时候也是从最内层函数开始,一层层往外分析。
以上便是嵌套函数调用的全部内容,感谢大家的收藏、点赞、评论。我们下一节将介绍作用域(Scope),敬请期待~