python函数
1、定义
2、调用函数(直接使用函数名加括号)
ps:定义函数时的参数是形参,调用函数时传递的参数是实参。
关键字参数:传递参数的时候加上参数名,防止参数搞乱
默认参数:定义参数时,直接给参数赋值,此值为默认值。当有默认参数时,函数调用可以不传递参数值,默认使用定义时的函数值。
收集参数(可变参数):当不清楚到底有多少个参数时使用
3、函数和过程 函数(function):有返回值
过程(produce):是简单的、特殊并且美誉返回值的
ps:严格来说python只有函数,没有过程。函数有返回值时返回一个值,没有时返回None对象
当需要返回多个值的时候,python默认返回一个元组,也可以返回一个list
4、变量的作用域
局部变量:在函数中定义的变量,只能在函数内部使用
全局变量:在函数体外定义的变量,可在整个文件代码中使用
ps:python在函数中视图修改全局变量时,会在函数中自动创建一个和全局变量名相同的局部变量,与全局变量互不影响。
5、global关键字
当要在函数中修改全局变量时,在函数中将变量用global关键字修饰,则可以修改全局变量
6、内嵌函数
7、闭包
在Python中,所谓的闭包是一个包含有环境变量取值的函数对象。环境变量取值被保存在函数对象的__closure__属性中。
ps:函数line与环境变量b构成闭包
注:在函数外部无法直接调用内嵌函数
8、匿名函数(lambda表达式)
9、filter过滤器
10、map函数
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
11、递归
ps:递归虽然效率高,但是得谨慎使用,注意递归的返回条件,以免进入死循环
代码实现
1、递归算法:
2、迭代算法
注:递归算法的执行效率没有迭代算法高,但代码比迭代算法简单
12、集合(唯一,即里面的元素值唯一,自动清除重复值)
集合与字典非常相似,也是用花括号将数据组合起来,只是里面没有字典一样的映射关系。
1、创建
2、方法
in / not in
remove()
add()
3、不可变集合(frozen:冰冻的、冻结的)
ps:集合是无序的,不支持索引