1. 函数的返回值
返回值就是返回函数执行的结果,通过return来指定函数的返回值
举例
运行结果为6,没有指定返回值
下图返回值指定
可以直接使用函数的返回值,另一个方式是通过一个变量来接收函数的返回值。
return后面可以跟任意的对象,甚至是一个函数,函数的话,return不加括号。
运行结果是: 123
在函数中,return后的代码都不会执行, return一旦执行,函数结束
下列运行结果 是 : abc none
下图 break 退出了当前循环,运行结果是: 012 循环完毕
用上了return ,下方函数直接结束, 运行结果 : 012
三种区别 注意 continue的运行如下
运行结果是 :0124 执行完毕
用了return后, 函数为所欲为,看下面代码
总结函数 括号打印区别
2. 文档字符串
函数 help() 是python的内置函数,即不想百度装逼的。
@可以查询python中函数的用法。
在定义函数的时候,可以在函数内部编写文档字符串,文档字符串就是函数的说明,
当我们编写了文档字符串时,就可以通过help()函数来产看函数的说明
语法:help(函数对象) #注意别加括号
file ,和 flush 是关键字传参
预见性结束偶
3.函数的作用域(scope)
就是指 变量生效的区域
@@ 在python中函数有两种作用域:
内(函数作用域) :函数调用时创建,调用后销毁;每次调用后…
和
外(全局):所有函数以外的都属于全局,在程序任意位置可以被访问。
外部看不到了吧!!
外部可见的区别哦
总结 两种 作用域
fn2下面 fn3
都能用
内部函数功能可以调用全局,但是全局不能看里层的函数作用域
**在函数内部修改全局变量,需要使用global关键字,来声明局部变量
**
运行结果内部外部都是 123
4.命名空间
命名空间就是一个字典,是 一个专门用来保存变量的字典。
locals() 用来获取当前作用域的命名空间,返回一个字典。
用关键字也可以哦
骚操作 ,有强制报错都能运行,但是不建议这样做;
运行结果如下
函数内部没有定义所以只是{}空字典
**globals()**可以获取全局的命名空间,哪怕在函数中 也有效
#获取了外部的a=123 b=456
5.递归函数
递归式的函数 简单理解就是自己引用自己
在函数中自己调用自己。
@@ 是解决问题的一种思想,和循环很像,整体上是将大问题分解为小问题,直到问题无法分解时,再去解决问题。
递归的两个条件:
- 基线条件:问题可以被分解为最小的问题,当满足基线条件时,递归就不再执行了。
- 递归条件: 将问题继续分解的条件。
#面试 经常考
举例@ 尝试求10的阶乘(10!)
1!=1
2!=1*2
。。。。
10!=…910
用循环才正规
#定义一个函数来实现任意数的阶乘
## 用递归的思想解决任意数阶乘问题#10!=109!
#9!=98!
。。。
#1!=1
递归练习
- 定义一个函数,为任意数字做任意的幂运算
- 定义一个函数,用来检查任意一个字符串是否时回文字符串,如是返回True,不是返回False
.回文 字符串,时从前往后念与从后往前念是一样的,例如 abcba
思路:
总结