在函数里面定义的参数,出了这个函数,这个变量都是无效的/局部变量
在函数里面可以调用函数外面的变量/全局变量
如果想在函数里面修改一个全局变量的值,需要用到 global.
count=12
def add():
global count
count+=8
print(count)
结果应为20
闭包
def add(x):
def app(y):
return x*y
return app
>>> add(30)(5)
150
app(y)就是add(x)的闭包
在闭包里面内部函数如果想改变外部函数的参数,可以使用nonlocal ;方法跟global相当
lambda:有两个参数,冒号前面的是原函数的参数,在冒号后面的是原函数的返回值
def add(x,y):
return x+y
g=lambda = x,y:x+y
filter(,) filter有两个参数,第一个参数可以为一个函数或者None,第二个参数为一个可迭代数据/如果第一个参数为函数,则将第二个可迭代数据理的每一个元素作为函数的参数进行计算,返回True的值并作为一个列表。如果第一个参数为None,就将第二个参数里的True的值列出来作为一个列表
效果一
def odd(x):
return x%2
temp=range(10)
show=filter(odd,temp)
print(list(show))
效果二
print(list(filter(lambda x:x%2,range(10))))
这两种方法都是一样的 结果为[1,3,5,7,9]
map(,) 有两个参数,第一个参数为一个函数,第二个参数为一个可迭代对象/作用为把第二个可迭代对象带入到第一个参数中,并把结果生成一个列表
print(list(map(lambda x:x*2,range(10))))
结果为[0,2,4,6,8,10,12,14,16,18]