学习笔记Python篇~函数

1、函数的定义和调用

<code>def function(x,y):
\t\t\treturn x+y/<code>
  • def #是定义函数的关键字
  • function #是函数名
  • (x,y) #括号内为参数
  • return #通过return返回值,把值赋给变量
  • 扩展知识点:print只是普通的打印但是不能赋值变量
  • 通过定义函数,再次调用函数可以实现代码的复用

2、函数参数

<code>def funtion(x,y=10,*args,**kwargs):
\t\t\tpass #pass暂时不进行任何操作/<code>
  • Python中函数主要有这三种参数:
  • (1)必备参数(x):调用时必须传入
  • (2)默认参数(y=10) :调用时可以不传入,不传入时默认使用默认值
  • (3)不定长参数(*args、**kwargs):可以传入也可以不传入,不传入时默认为空元祖和空字典
  • 其中不定长参数有:元组和字典两种类型,字典传入是,必须是键值对的形式,且只能最后传入,定义时也只能放在最后面
  • None 空值
  • 拆包:类似于元组拆包,在传入时也可以通过解包传入不定长参数

3、函数的作用域

  • 全局变量、局部变量
  • 函数不会改变传入的不可变对象的值!
  • 函数内部定义的变量在函数外部不可以使用,是局部变量
  • global 是全局变量声明,声 明之后可以在全局使用,这里的全局指的是当前py文件中。
  • 注意:函数内外名字要一致,否则就是一个新变量
  • nonlocal 是声明局部变量(嵌套函数中使用)
  • 闭包:把内部函数和外部变量都称为闭包
  • 闭包作用:可以在外部修改函数内部的变量值,是函数内部与外界沟通的桥梁

4、递归函数和匿名函数

  • 递归函数:函数内部调用函数自己本身,和while循环类似,也需要一个结束条件,否则超出递归深度就会报错。例如:
<code>def recursion(n):
if n<=1:
return 1
else:
return n *recursion(n-1)/<code>
  • 匿名函数:就是没有函数名的函数,主要用来定义那种不是特别复杂的函数,常用于函数的参数中。
  • 例如:
<code>g = lambda x : x+1
li.sort(key=lambda x: str(x)) #li是一个列表,key参数是可以接受函数的,所以可以直接写成匿名函数/<code>
  • filter() 内置函数 过滤器
  • filter(函数,需要过滤的元素等) 如:list(filter(lambda x:x>5,li)) #过滤列表li里大于5的元素
  • map 统一对元素进行操作 如: list(map(lambda x : x*10,li)) #将列表li里的元素都进行乘以10的操作
  • zip 统一配对的内置函数 zip(tu,li) #tu是一个元组,li是一个列表,将其组成一个字典
  • 回调函数 把一个函数体当做参数传递给另一个函数去使用
<code>def func(f):
\t\t\tf()
print('调用了了另外一个函数')
def play():
print('函数使用')
func(play) #调用play函数/<code>


分享到:


相關文章: