一、生成式
1.生成式基础
生成式就是生成器的简写。语法:生成器 = (表达式 for 变量 in序列)。
2.列表生成式
列表 = list(表达式 for 变量 in序列) / 列表 = [表达式 for 变量 in序列]
3.字典生成式
字典 = dict(表达式 for 变量 in序列)
4.语法二:
生成器 = (表达式 for 变量 in序列 if 条件语句)。
5.三目运算符:
变量 = 表达式1 if 条件语句 else 表达式2
二、函数与变量
函数可以当成是类型是function的变量,变量能做的它都能做。
①给其他变量赋值。
②作为序列中的元素
③作为函数的参数
④作为函数逇返回值
三、高阶函数
1.实参高阶函数:
有一个参数是函数的函数就是实参高阶函数,例如:sorted\max\min等。
2.返回值高阶函数
返回值是函数的函数就是返回值高阶函数
# 练习:声明一个函数operation,要求可以接收一个字符参数,最后根据字符值的不同返回不同功能的函数
# + -> 求多个数和的功能 - -> 求多个数差的功能 * -> 求多个数乘积的功能
def operation(char: str):
if char == '+':
def sum1(*args):
temp = 0
for x in args:
temp += x
return temp
return sum1
elif char == '-':
def diff(*args):
temp = 0
for x in args:
temp -= x
return temp
return diff
print(operation('-')(0, 8, 9))
print(operation('+')(10, 8, 9))
3.闭包
闭包就是一个函数,这个函数需要满足以下两个条件:
1.函数的返回值是声明在这个函数中的函数(内函数)
2.这个内函数必须使用外函数中的临时变量(外函数中的局部变量)
闭包的作用:保存临时变量的值(函数调用结束后,函数中的数据不消毁)。
四、装饰器
1.装饰器:
装饰器本质还是一个函数
装饰器的作用,在不修改函数本身的前提下给函数添加功能
2.语法:
def 函数名1(参数1):
def 函数名2(*args, *kwargs):
体现为原函数添加功能的代码
(保证出现:参数1(args, **kwargs))
return 函数名2
@函数1
声明需要添加功能的函数
五、回调函数
函数的调用是在其他函数的内部满足条件的时候自动调用的函数。