python中变量的作用域(函数)2020-11-16

python中变量的作用域(函数)

作用域(LEGB)
==local ==本地的 局部变量 encloseing 嵌套
global 全局变量 built-in 内置的

a=100                             #全局变量
def func():
	a=10                          #嵌套
	def funcion():
		a=1                       #局部变量
		print(a)
func()  调用外部函数
f=func()调用内部函数
f()
a=100                             #全局变量
def func():
	a=10                          #嵌套
	def funcion():
		a=1                       #局部变量
		print(a)
func()  调用外部函数
f=func()调用内部函数
f()

函数作用域变量遵循就近原则。 (局部变量优先于嵌套变量,嵌套变量优先于全局变量,全局变量优先于内置函数;)

匿名函数

def funcion():
	print("aaaaaa")
def add(a,b):
	s = a + b
	return s

以上函数过于繁琐所以引入了匿名函数;
**匿名函数:**简化了函数的定义;
**匿名函数格式:**lambda 参数1,参数2 :运算
例子:

s = lambda  a, b: a+b
print(s)

输出:
<funcion<lambda>at 0x0000000001D11e18>
lambda是一个函数;


s(1,2)
输出:
<funcion<lambda>at 0x0000000001D11e18>
lambda是一个函数;


return=s(1,2)
输出:
3
匿名函数可以作为参数出现

def func(x,y,func):
	print(x,y)
	print(func)
	s = func(x,y)
	print(s)
#调用func
func(1,2,lambda 1,2: 1+2)

输出:
1  2
<funcion<lambda>at 0x0000000001D11e18>
3

匿名函数的综合使用:

#  max    sorted     zip  ...
list1 = [3,5,8,9,0]
m =max(list1)
print("列表中的最大值:",m)

list2 = [{'a':10,'b':20},{'a':13,'b':20},{'a':9,'b':20},{'a':29,'b':20}]
m=max(list2,key=lambda x: x['a'])
print("列表中的最大值:",m)
map函数
map函数的格式:map(函数,可迭代的参数(列表,元祖...))\
list1 =  [5,6,7,4,8,9]
result=map(lambda x:x+2,list1)
print(result)
输出:
[7,8,9,6,10,11]


#for index,x in enumerate(list1)
#	list[index]=x+2

#对列表中奇数进行加1操作
func = lambda x: x if x%2==0 else x+1
result = func(5)
print(result)
类似于
result=map(lambda x:x if x%2==0 else x+1,list1)
print(list(result))



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值