递归函数
- 自定义函数中,调用自身的函数称为递归函数;
- 常见的递归:阶乘、斐波那契数列(Fibonacci sequence)
内置函数中常用函数
- range(start,stop,step)
数组序列生成器,左闭右开,可设定步长。默认初始值为0,步长为1。
- zip()
zip本意指拉链,即将几组序列数据中的元素一一对应匹配连接,生成的结果为一对对元组数据。
- map(func,*interable) 对可迭代对象中的每一个元素以此做func函数运算。(重点、必会)
- filter() 过滤器运算
匿名函数
- lambda *args:func_return
没有函数名称,解决临时下的函数运算需求。 - 可以将匿名函数赋值给一个变量(这样变量就成了函数名);再用该变量调用函数。
高阶函数
- 函数名可作为参数传入;
- 函数名可作为返回值。
有以上两个特征的函数才是高阶函数。
闭包&装饰器
- 闭包需满足三个特征:
- 一个外函数中定义一个内函数;
- 内函数中使用了外函数的变量
- 外函数的返回值是内函数的引用
- 装饰器:一种语法糖,主要用于在函数或类的基础上添加一些可重用的额外功能。装饰器满足了函数的封闭与开放原则。在不改变原代码的情况下为函数添加新功能。
### 推导式 - 列表推导式
[out_exp for out_exp in input_exp]
[out_exp for out_exp in input_exp if out_exp_condition]
- 字典推导式
- 集合推导式
- 迭代器- 可迭代对象 iterable
- str, list, tuple,set,dict
- generator 生成器和yield 生成器函数,也是可迭代对象。
- 判断是否可迭代:1 是否内置有__iter__方法;2 isinstance(obj,iterable)
- 迭代器 iterator
- 是否有内置的__next__()方法;
- 可迭代对象 iterable
from collections import iterable
from collections import iterator
- 生成器 (懂太少,先占个位吧)
- 在python中一边计算、一边循环的机制,称为生成器。
- 创建生成器
-
生成器表达式来源于迭代和列表解析的组合,生成器和列表解析类似,但是它使用()而不是[]。
-
生成器函数。
-
yield 是将函数变成生成器的关键词,将值返回到next()。在遇到下一个next()的时候,会接着上一次执行的代码继续执行。
send() 和next()一样,都能让生成器继续执行,遇到yield返回,但send() 能传一个值,这个值为yield表达式的整体结果。
【完】