此次我们继续学习python第五章的内容。
5.1 return语句:
√用来从一个函数中返回一个值,同时结束函数。 对于以下情况,Python将认为该函数以return None结束,返回空值:
√函数没有return语句;
√函数有return语句但是没有执行到;
√函数有return但是没有返回任何值。
ps:sort()属于原地操作,没有返回值,而内置函数sorted()则返回排序后的列表,并不对原列表做任何修改。
5.5变量作用域
√变量起作用的代码范围称为变量的作用域,不同作用域内变量名可以相同,互不影响。
√在函数内部定义的普通变量只在函数内部起作用,称为局部变量。
√当函数执行结束后,局部变量自动删除,不再可以使用。 局部变量的引用比全局变量速度快,应优先考虑使用。
全局变量可以通过关键字global来定义。这分为两种情况:
√一个变量已在函数外定义,如果在函数内需要为这个变量赋值,并要将这个赋值结果反映到函数外,可以在函数内使用global将其声明为全局变量。
√如果一个变量在函数外没有定义,在函数内部也可以直接将一个变量定义为全局变量,该函数执行后,将增加一个新的全局变量。
>>> def demo():
global x
x = 3
y = 4
print(x,y)
>>> x = 5
>>> demo()
3 4
>>> x
3
>>> y
NameError: name 'y' is not defined
PS:在某个作用域内任意位置只要有为变量赋值的操作,该变量在这个作用域内就是局部变量,除非使用global进行了声明。
如果局部变量与全局变量具有相同的名字,那么该局部变量会在自己的作用域内隐藏同名的全局变量。
5.6 lambda表达式
√ lambda表达式可以用来声明匿名函数,也就是没有函数名字的临时使用的小函数,尤其适合需要一个函数作为另一个函数参数的场合。也可以定义具名函数。
√ lambda表达式只可以包含一个表达式,该表达式的计算结果可以看作是函数的返回值,不允许包含复合语句,但在表达式中可以调用其他函数。