5 局部变量和全局变量
举例:
n,s = 10,100 # n和s是全局变量
def fact(n):#fact()函数中的n和s是局部变量
s = 1
for i in range(1,n+1):
s *= i
return s
print(fact(n),s)# n和s是全局变量
使用规则:
1.局部变量和全局变量是不同变量
-局部变量是函数内部的占位符,与全局变量可能重名但不同
-函数运算结束后,局部变量被释放
-可以用global保留字在函数内部使用全局变量
n,s = 10,100
def fact(n):
global s #声明此处s是全局变量s
for i in range(1,n+1):
s *= i
return s #此处s指全局变量s
print(fact(n),s) #此处s指全局变量s,被函数修改 362880000 362880000
2.局部变量为组合数据类型且并未创建,等同于全局变量
ls = ['F','f']
def func(a):
ls.append(a)#此处ls是列表类型,未真实创建则等同于全局变量
return
func('C')#全局变量ls被修改
print(ls)#['F', 'f', 'C']
另一种情况,ls是局部变量
ls = ['F','f']
def func(a):
ls = []# 此处ls是列表类型,真实创建,ls是局部变量
ls.append(a)
return
func('C')#局部变量ls被修改
print(ls)#['F','f']
6 lambda函数
lambda函数返回函数名作为结果
-lambda函数是一种匿名函数,即没有名字的函数
-使用lambda保留字定义,函数名是返回结果
-lambda函数用于定义简单的、能够在一行内表示的函数
<函数名>=lambda<参数>:<表达式>
等价于用def和return定义的函数
案例:
f = lambda x, y : x + y
y = f(10,15)
print(y)#25
f = lambda : "lambda函数"
print(f())#lambda函数
但是要谨慎使用lambda函数
-lambda函数主要用做一些特定函数或方法的参数
-建议使用def定义的