理解python函数,这一篇文章就够了

python函数知识重难点

1.在python里,函数也是一个变量,定义方式:def 变量名(形参列表)。

2.函数不被调用,就不占用内存。

3.函数的四种参数:
*必需参数:f(a,b)
*关键字参数:f(b = ?,a = ?)
*默认参数:def f(a,b = ?)
*不定长参数:def f(a) (一个,后面的参数都被打包成元组存在a中)
def f(*a) (两个,传参的形式必须为(name = value,name = value,…),被打包成字典,存在a中)

4.return语句一旦执行,代表着整个函数的结束,若函数中没有return,默认返回None,python的return可以返回多个值。

5.函数的四个作用域:
*L: local,局部作用域(函数中自定义的变量)
*E: enclosing,包含上级作用域,但不是全局的
*G: golbal,全局变量
*B: buid-in,python内置作用域
变量查找顺序:LEGB

6.在Python中,只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,
其它的代码块(如if、try、for等)是不会引入新的作用域的,如下代码:
if 2>1: 这个是没有问题的,if并没有引
x = 1 入一个新的作用域,x仍处在当前
print(x) # 1 作用域中,后面代码可以使用。
但是在C语言和java语言中,x如果定义在if语句中,在外面是访问不到的,所以这是python与C语言和java语言的区别

7.golbal关键字:在函数中想要使用全局变量的时候使用。

8.nolocal关键字:在函数中想要访问上一级作用域的对象。

9.匿名函数:lambda 形参(可以有多个):表达式
* 匿名函数只能返回一个值
* 表达式只能是有限的逻辑
* x =lambda : 接收一个函数对象,和def f(a,b)的f一样,x和f都是对象,x()和f()都是对函数的调用

10.常用的内置函数:
* map函数:map(函数对象, 可迭代对象)
* reduce函数:reduce(函数对象, 可迭代对象)
* filter函数:filter(函数对象, 可迭代对象)
* sorted函数(这个特殊,单独记忆):sorted(可迭代对象, key = 函数对象,reversed = True(False))

猜你喜欢

转载自blog.csdn.net/weixin_51194902/article/details/110012275