当前位置:   article > 正文

【python基础学习08课_函数的嵌套、内置函数等】_python函数内嵌,嵌套函数

python函数内嵌,嵌套函数

一、函数

1、函数的注释

1)如何写注释
  1. """
  2. 函数的注释 -- 说明这个函数的作用,以及参数的诠释
  3. """
  4. 三个引号之间可以注释
  5. 例如:
  6. '''这是一段注释'''
  7. """这是一段注释"""

 

2)如何获取注释信息

2、函数的嵌套

  1. 函数的嵌套是指在编程中一个函数内部定义或调用另一个函数。这种结构在处理复杂任务时非常有用,因为它允许将大的问题分解成小的、可管理的部分,并保持代码的模块化和可读性。
  2. 以下是两种常见的函数嵌套形式:
  3. 1. **函数内部定义另一个函数**
  4. 在一个函数内部定义另一个函数是合法的,但内部函数通常只能在外部函数的作用域内被访问。
  5. 2. **函数内部调用另一个函数**
  6. 一个函数可以在其内部调用另一个已经定义的函数。
  7. 嵌套函数的一些注意事项:
  8. - **作用域**:内部函数可以访问外部函数的作用域内的变量,但外部函数不能访问内部函数的局部变量(除非内部函数将其返回或作为参数传递)。
  9. - **闭包**:当内部函数访问外部函数的变量时,这种结构称为闭包。闭包在处理异步操作、事件处理、数据封装等方面非常有用。
  10. - **递归**:一个函数调用自身也是一种特殊的嵌套,称为递归。递归在处理递归数据结构(如树、图形)或执行分而治之的算法时非常有用。
  11. 使用嵌套函数可以增加代码的可读性和维护性,但也可能导致性能开销,因为每次调用外部函数时,内部函数都需要重新创建。因此,在设计函数时,需要权衡其带来的好处和潜在的缺点。
1)函数内部调用另一个函数

两个同等级别的函数的调用

2)函数内部定义另一个函数

在函数内部定义函数

内部不调用内部的函数,内部函数就不能执行

在外面调用内部函数,内部函数也不能执行,在外面调用是没有定义的

3、作用域

  1. 作用域:我们定义的变量和函数在哪个范围内可以使用
  2. {比如:中国的警察只能在中国维护治安,不能在国际上维护治安}
  3. 变量的作用域:
  4. 1.全局变量:在当前文件内定义的变量,可以在文件内的任何地方使用
  5. 2.局部变量:在有效的范围内可以使用,一旦出了范围就无法使用
  6. 注:局部变量可以升级为全局变量 -- 常见的场景:上一个接口的信息如何给下一个接口使用
1)局部变量

局部变量,在作用域之外被调用,会报未被定义

{比如:中国的警察只能在中国维护治安,不能在国际上维护治安,有警察局出警(函数执行),局里的警察(局部变量)才能是上班状态的,才是有意义的}

局部变量,在作用域之内被调用,正常

2)全局变量

要顶着最左边代码行的变量

自己犯的一个错误

使用占位符的时候{}里面没有引用参数,导致报错

3)把局部变量升级为全局变量
3.1)通过global关键字,将局部变量升级为全局变量。

但是这个变量是定义在函数里面的,即使升级为全局变量,也得先调用这个函数才能执行。因为只有在这个函数里,这个变量才存在,执行了这个函数,这个变量才能存在。不执行这个函数,这个变量就不存在。

3.1.1)局部变量所在的那部分代码不执行,这个变量就不存在

在非函数里面也是一样的

不执行,不存在

不执行这个函数,就好报错未被定义这个局部变量

这样先用参数,再调用函数也不行

后用global声明也不行

4)循环里面,会对全局变量进行重定义

如果循环不执行,就不会重定义

4、数学函数

  1. 数学函数,了解会用就行
  2. abs() 绝对值
  3. divmod() 返回商和余数
  4. round() 四舍五入[注:银行家算法的问题]
  5. pow() 次方
  6. sum() 求和
  7. min() 最小值
  8. max() 最大值
1)绝对值函数--adb()

2)返回商和余数--divmod()

3)四舍五入--round()
四舍五入[注:银行家算法的问题],规则:奇数-正常的结果;偶数-直接舍弃后面[0~0.5这个范围]的小数

偶数只有小数在0~0.5这个范围的小数会被舍弃,大于0.5的不会被舍弃

 4)次方--pow()

5)sum() 求和

只能对数字类型求和

不能对字符串类型进行加和

6)min()最小值

7)max()最大值

5、匿名函数

了解能看懂即可,用的不多

  1. 匿名函数:没有名字的函数
  2. lambda 关键字完成
1)派--pi

2)圆的面积

3)普通函数

print(函数名)=打印函数的内存地址

如果是print(函数名)会打印函数内存地址

如果是print(函数)会报错

自己优化一下

4)匿名函数的写法

报错的情况,调用函数时,没传函数必要的位置参数

只调用,不获取返回值是没有结果的

将位置参数,写上

将位置参数及它的值,写上

6、函数的传递(或叫引用)

  1. 函数的调用与引用:
  2. 小口诀:有小括号,是调用。没有小括号,是引用。
  3. 引用函数:直接写函数的名称,不加(),就是引用,就是传递函数的本体(所在的内存地址),例如:fun3(fun2)
  4. ---------理解成:只要这个人的所在住址
  5. 调用函数:函数的名称加上(),就是通过函数的本体,然后调用函数,就会去执行函数内部的代码块,,例如:fun3(fun2())
  6. ---------理解成:通过这个人的所在住址,叫这个人去做他的工作
  7. 什么时候需要引用,什么时候需要调用?
  8. 1.引用是获取封装好的函数的内存地址
  9. 2.当我写用例的时候,如果需要用到这个函数里面的操作,就可以通过这个地址,去执行这个函数
  10. 3.主动权都在我手上
1)函数的调用

2)函数的内存地址--本体

函数本体+() =调用这个函数

3)函数的引用--传递函数的本体
3.1) 调用函数B时,直接调用传递的函数A

只有调用函数,函数才会执行。只引用函数,而没有调用该函数,引用的函数是不执行的。

3.2) 调用函数B时,通过参数的形式,调用传递的函数A


因为执行fun(aa=fun2)时,是将fun2的本体传递给aa,  本体+()就等于调用这个函数,所以aa()就相当于fun2()。所以相当于,函数2 是函数3的内部代码块的一部分(2被3引用了--aa())

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/585328
推荐阅读
相关标签
  

闽ICP备14008679号