Python基础day04【函数(定义与调用、文档说明、传参函数、全局变量、返回值、嵌套调用)】 柔情只为你懂 2022-10-31 12:10 101阅读 0赞 > * [**视频、源码、课件、软件、笔记:**超全面Python基础入门教程【十天课程】博客笔记汇总表【黑马程序员】][Python] > * [Python基础day04【字典】][Python_day04] > > ![20210222102230656.png][] ![2021022210295447.png][] **目录** 3.函数 函数的定义和调用 函数定义 PEP8规范 快速按照PEP8规范格式化代码 函数的文档说明 查看函数的文档注释:Ctrl+B 自定义函数文档注释 书写带参数的函数 局部变量 全局变量 返回值 <1>“返回值”介绍 <2>带有返回值的函数 <3>保存函数的返回值 return返回多个数据值 函数返回值解析 函数的嵌套调用 函数应用:打印图形和数学计算 打印图形 数学计算 函数的参数 <1> 定义带有参数的函数 <2> 调用带有参数的函数 <3> 练一练 <4> 调用函数时参数的顺序 <5> 小总结 day04总结 -------------------- # 3.函数 # > print():打印输出 > input():输入 > len():求容器长度的 > ... > 函数可以实现一个具体的功能。 > 如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。 ## 函数的定义和调用 ## > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 1][] > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 2][] ### 函数定义 PEP8规范 ### > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 3][] ![20210223104147101.png][] > > ![20210223104211266.png][] ### 快速按照PEP8规范格式化代码 ### > ![20210223104751845.png][] ## 函数的文档说明 ## ### 查看函数的文档注释:Ctrl+B ### > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 4][] > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 5][] > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 6][] ### 自定义函数文档注释 ### > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 7][] > > ![20210223110916763.png][] ## 书写带参数的函数 ## > 好处: 可以使函数代码更加通用,适用更多的场景。 > > ![20210223111233778.png][] > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 8][] > > ![20210223111443358.png][] > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 9][] ## 局部变量 ## > 1. 局部变量的作用域(作用范围): 当前函数的内部。 > 2. 局部变量的生存周期:在函数调用的时候被创建,函数调用结束之后,被销毁(删除)。 > 3. 局部变量只能在当前函数的内部使用,不能在函数的外部使用。 > > ![20210223112106324.png][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 10][] > > ![20210223112750156.png][] ## 全局变量 ## > 1. 全局变量:就是在函数外部定义的变量。 > 2. 在函数内部可以访问全局变量的值,如果想要修改全局变量的值,需要使用 global 关键字声明。 > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 11][] > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 12][] ## 返回值 ## > 在函数中定义的局部变量,或者通过计算得出的局部变量, 想要在函数外部访问和使用,此时就可以使用 return 关键字,将这个返回值返回。 > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 13][] > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 14][] ### <1>“返回值”介绍 ### > 现实生活中的场景: > > 我给儿子10块钱,让他给我买包烟。这个例子中,10块钱是我给儿子的,就相当于调用函数时 传递参数。让儿子买烟这个事情最终的目标是,让他把烟给你带回来然后给你。此时烟就是返回值。 > > 开发中的场景: > > 定义了一个函数,获取室内温度。想一想是不是应该把这个结果给调用者?(是) > > 只有调用者拥有了这个返回值,才能够根据当前的温度做适当的调整。 > > 综上所述: > > * 所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果 ### <2>带有返回值的函数 ### > 想要在函数中把结果返回给调用者,需要在函数中使用return > > 如下示例: > > def add2num(a, b): > c = a+b > return c > > 或者 > > def add2num(a, b): > return a+b ### <3>保存函数的返回值 ### > 在本小节刚开始的时候,说过的“买烟”的例子中,最后儿子给你烟时,你一定是从儿子手中接过来。程序也是如此,如果一个函数返回了一个数据,那么想要用这个数据,那么就需要保存。 > > 保存函数的返回值示例如下: > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 15][] ## return返回多个数据值 ## > 程序代码遇到一个 return 之后,后续的代码不再执行。 > > ![20210223151816951.png][] > > ![20210223152302411.png][] > 1. return 关键字后边可以不写数据值, 默认返回 None。 > def func(): > xxx > return \# 返回 None,终止函数的运行的。 > > 2. 函数可以不写 return,返回值默认是 None。 > def func(): > xxx > pass ## 函数返回值解析 ## > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 16][] > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 17][] ## 函数的嵌套调用 ## > 一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用。 > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 18][] > > 如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后,才会回到上次函数A执行的位置。 > ![20210223153249430.png][] ![20210223153806430.png][] ## 函数应用:打印图形和数学计算 ## ### 打印图形 ### > **目标** > > * 感受函数的嵌套调用 > * 感受程序设计的思路,复杂问题分解为简单问题 > > **思考&实现1** > > 1. 写一个函数打印一条横线 > 2. 打印自定义行数的横线 > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 19][] ![20210223154351781.png][] ### 数学计算 ### > **思考&实现2** > > 1. 写一个函数求三个数的和 > 2. 写一个函数求三个数的平均值 > > ![20210223154410386.png][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 20][] ## 函数的参数 ## > 思考一个问题,如下: > > 现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代码可以吗?有什么缺陷吗? > > def add2num(): > a = 11 > b = 22 > c = a+b > print c > > 为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和。在定义函数的时候可以让函数接收数据,这就是函数的参数。 ### <1> 定义带有参数的函数 ### > 示例如下: > > def add2num(a, b): > c = a+b > print c ### <2> 调用带有参数的函数 ### > 以调用上面的add2num(a, b)函数为例: > > def add2num(a, b): > c = a+b > print c > > add2num(11, 22) \# 调用带有参数的函数时,需要在小括号中,传递数据 > > 调用带有参数函数的运行过程: > > ![20210223171816993.gif][] ### <3> 练一练 ### > 要求:定义一个函数,完成前2个数完成加法运算,然后对第3个数,进行减法;然后调用这个函数。 > > * 使用def定义函数,要注意有3个参数 > * 调用的时候,这个函数定义时 有几个参数,那么就需要传递几个参数 > > ![20210223172051274.png][] ### <4> 调用函数时参数的顺序 ### >>> def test(a,b): ... print(a,b) ... >>> test(1,2) 1 2 >>> test(b=1,a=2) 2 1 >>> >>> test(b=1,2) File "<stdin>", line 1 SyntaxError: positional argument follows keyword argument >>> >>> ### <5> 小总结 ### > * 定义时小括号中的参数,用来接收参数用的,称为 “形参”。 > * 调用时小括号中的参数,用来传递给函数用的,称为 “实参”。 # day04总结 # > ![20210223155156345.png][] > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 21][] [Python]: https://blog.csdn.net/weixin_44949135/article/details/113444321 [Python_day04]: https://blog.csdn.net/weixin_44949135/article/details/113930614 [20210222102230656.png]: https://img-blog.csdnimg.cn/20210222102230656.png [2021022210295447.png]: /images/20221024/e23583d886c94ad4ae2cd983e5c9afb8.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70]: https://img-blog.csdnimg.cn/20210223164838279.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ==,size_16,color_FFFFFF,t_70 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 1]: /images/20221024/90ae7dec8dc64797ba55701b81ae092f.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 2]: /images/20221024/f9849a250f3b4c32aa4a5f9ba86659be.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 3]: https://img-blog.csdnimg.cn/20210223104108108.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ==,size_16,color_FFFFFF,t_70 [20210223104147101.png]: /images/20221024/517f66227ee6420b954eb1f960bceabd.png [20210223104211266.png]: /images/20221024/08aa8dc6c1eb469286dde98f9a567a50.png [20210223104751845.png]: /images/20221024/bd1b85abb8524149991fb9e56bb3aa40.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 4]: /images/20221024/3de7764bf3ce4d69a3ee06a0a0258432.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 5]: /images/20221024/037437e9ca7841339f88cbf0c661d80b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 6]: /images/20221024/946ba19f454d4151b1abac0e31c82cba.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 7]: /images/20221024/76253ced3c01463bbbb634ceebfff6c6.png [20210223110916763.png]: /images/20221024/3d1214018b144c138885c5a99b0a6c78.png [20210223111233778.png]: /images/20221024/7a299880e6fe4257974f187badce2483.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 8]: /images/20221024/3a43c8cb4d19467f987741199aa8c7f5.png [20210223111443358.png]: /images/20221024/269865633ec54242aeb01bdf1942d446.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 9]: /images/20221024/a041143fe7fe490c91ae240843ecda36.png [20210223112106324.png]: https://img-blog.csdnimg.cn/20210223112106324.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 10]: /images/20221024/c0047efaa6cd4fdfac64135fcf636d10.png [20210223112750156.png]: /images/20221024/8cdb1fa447fa412e9e81c27f7bf81c97.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 11]: /images/20221024/1fff115184dd440da42b3d79ad43a347.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 12]: /images/20221024/d5dcddb701af4aeb9ec06404dd539f74.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 13]: /images/20221024/b6433c04704a4f2c9aca909b453108f9.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 14]: /images/20221024/5fcc19a24a4143fda15d1d364d62cb05.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 15]: /images/20221024/c0ed573cc4f44260acba6bcaaccb525f.png [20210223151816951.png]: /images/20221024/d13333164f0040b48755d9cf6b65a2ff.png [20210223152302411.png]: /images/20221024/3862ee9285b44c73a040ae796123ca21.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 16]: /images/20221024/af1ed3f12e4045b8ba1fab6a54d1dd25.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 17]: /images/20221024/fec86e1cf0a44631822488a80f6b2bb3.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 18]: /images/20221024/33d92a42d50a4eea9375e31c7f16db8b.png [20210223153249430.png]: https://img-blog.csdnimg.cn/20210223153249430.png [20210223153806430.png]: /images/20221024/d3b648fd590d4d15921fcf1ca7517b8f.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 19]: https://img-blog.csdnimg.cn/20210223170710672.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ==,size_16,color_FFFFFF,t_70 [20210223154351781.png]: /images/20221024/fd9e6f7d1ba249fe9fa1de67fbfb6539.png [20210223154410386.png]: https://img-blog.csdnimg.cn/20210223154410386.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 20]: /images/20221024/b76cd506509344dcba70420dca1c5642.png [20210223171816993.gif]: /images/20221024/93a47c44cf7b4b9c88cdcf6716a283b3.png [20210223172051274.png]: /images/20221024/c1030c9596d547359c6377d9ee4486f8.png [20210223155156345.png]: /images/20221024/86069a5a6bcf4e9fa0079ace75430e2f.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 21]: /images/20221024/769022f5f67946b79a0368a95737c386.png
还没有评论,来说两句吧...