【Python函数和类5/6】函数的综合应用

目录

目标

内置函数

无参函数

有参函数

形参和实参

默认值形参

print和return的区别

匿名函数

递归

总结


目标

        到目前为止,我们学习了函数的许多知识。从参数上来看,函数可以有参数,也可以没有参数;从功能上看,函数有输出型的,也有返回型的;从名称上来看,函数可以有名称,也可以没有名称。今天,我们将对这些内容进行一个复习小结。

内置函数

        通过前面的学习,我们知道了函数可以分为内置函数和自定义函数。内置函数是可以直接使用的,如图展示了两个常用的内置函数。len函数,用于获取对象的长度或元素个数。type函数,用于查询对象的数据类型。

无参函数

        除了内置函数以外,我们还学习过自定义函数。定义的函数如果没有设置参数,就是无参函数;如果设置了参数,就是有参函数。

        下面,我们通过无参函数来回顾下定义和调用函数的语法规则。

无参函数

        自定义函数在使用时需要先定义,再调用。定义函数使用关键字def,调用格式为:函数名()示例中,定义和调用函数时,括号内没有传入参数,这就是无参函数。

有参函数

        而在实际运用中,我们使用更多的还是有参函数。因为有参函数可以通过传入参数的方式,控制输出的结果的差异性。

        下面,我们接着复习有参函数。

形参和实参

        有参函数定义时,需要在括号设置参数,调用时也需要设置参数。定义函数时的参数叫形参,用于接收实参传递的数据。调用函数时的参数叫实参,用于给形参传递数据。示例中,实参"7.8折"会传递给形参discount。

        对于有参函数的形参和实参,一方面,我们要熟悉它们最基础的概念和用法。另一方面,我们要了解形参和实参的一些特殊用法。

        下面,我们先来介绍形参的特殊用法。

默认值形参

        形参的特殊之处,就是可以设置默认值。实例中,radius是非默认值形参,pi是默认值形参,且默认值为3.14。再次提醒, 在定义函数时,必须先写非默认值形参,再写默认值形参

        在定义函数时,我们给形参pi设置了默认值3.14。所以,我们在调用函数中给默认值形参提供了实参值时,Python将优先使用实参值;否则,将使用形参的默认值。

        在形参中,有默认值参数这种特殊的用法。而在实参中,也有一些特殊的用法,我们一起来回顾一下。

关键字实参与位置实参

        对于实参,我们经常会用到位置实参,同时我们也要了解关键字实参

        示例中的第5行使用了关键字实参,即在括号内直接给形参赋值的方式传递数据。

        示例中的第6行使用了位置实参,即在括号内传入具体的实参数据,按照位置顺序依次传递给形参。

缺少实参

        还有一个易错点需要我们记住。因为,我们使用位置实参时,形参会按照位置顺序依次接收实参处的数据。所以,在调用函数时,缺少位置参数会导致程序报错

print和return的区别

        然后,我们再来复习一下定义函数时,使用print和return的区别。简单来说,函数中使用print,是为了显示信息,将结果直接输出。使用return,是为了返回结果。返回值可以用变量接走,继续使用该返回值做其它事。

print

        如图,定义函数的代码块中使用了print。当我们调用该函数时,程序执行函数的代码块,直接输出了结果。而这类函数有一个比较大的问题,就是我们没办法把结果拿去干其他事情。

        下面,我们通过一个例子说明。

        如图,调用函数能输出结果,但是调用函数的结果却不能用来比较大小。这是因为数据在函数内被直接输出,没有传到函数外。

        如果,我们要将函数的运行结果,传递到函数外使用。那么,我们就需要用return关键字来将结果返回出来。

return

        如图,定义函数的代码块中使用了return。当我们调用该函数时,程序执行函数的代码块,会将结果返回给调用函数处。此时调用函数的代码等同于一个变量,我们可以用它来给其他变量赋值、与其他数据比大小等操作。

        这里注意,对于使用return的函数,如果我们只是调用该函数,不会有输出结果。如图,我们可以像使用print()输出变量一样,将调用函数的结果输出。

匿名函数

        最后,对于匿名函数和递归的相关知识,我们能够理解并简单运用即可。通过前面的学习,我们知道匿名函数无需定义函数名,以 关键字 lambda 开头。包含return的简单函数,一般就可以使用匿名函数来进行改写。

递归

递归实现阶乘

        当然,递归能实现一些经典问题,比如阶乘问题,斐波那契数列等等。一个正整数的阶乘是所有小于及等于该数的正整数的积,写作n!。例如5!=5×4×3×2×1。因为0的阶乘为1,所以,示例中设置终止条件为n等于0或1时,返回1。又因为阶乘是累乘,所以,递归的前进条件设置为:n * factorial(n-1)

总结

        至此,函数的常见知识点就复习结束了。而对于函数的知识,我们尽量能够做到下面两点:

一、在自己敲代码的过程中,能利用函数简化代码。

二、在学习他人的函数时,能够看懂并理解其中代码的含义,并有效利用。

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栗子编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值