函数可以将我们的程序分解成最小的模块,避免重复使用。函数内部的代码,只有被调用的时候才会执行。
函数的定义(def就是define):
格式:def 函数名():
函数封装的代码
函数的调用:
格式:函数名()
示例1:函数的定义(无参数)和调用
注意:不能够将函数的的调用放在函数定义的上方,因为需要先定义,后调用,比如下面就会报错:
示例2:有参数的函数
示例3:形参、实参 :
定义函数时候的参数是形参,调用函数时候的参数是实参,实参可以是常量、变量、表达式。
如果函数的参数为数字、字符串,函数内部修改形参的值,不影响实参的值:
如果函数的参数是列表、集合、字典,函数内部修改形参的值,会影响到实参的值:
形参的缺省值:当传参的时候没有给形参传入具体的值,那么形参就会采用默认的值。
注意:把有缺省值的参数一定要写在后面
示例4:带返回值的函数-return
示例5: 函数的嵌套使用(函数里面调用了函数)
变量的作用域:
局部变量:
函数内部定义的变量
只能在函数内部使用
不同函数的的局部变量名字可以相同。
函数执行结束后,函数的局部变量就会被系统收回。
全局变量:
在函数外部定义的变量
全局变量需要写在所有代码的上方
全局变量在函数内部也可以使用
尽量使用局部变量,减少全局变量的定义。
当局部变量和全局变量重名时,局部变量覆盖全局变量:
如果需要在函数内部修改全局变量的值,需要使用global进行声明:
匿名函数:lambda,能创建小型匿名函数,这种函数省略了def声明函数的步骤。
格式:函数名 = lambda 参数1 参数2 .... : 表达式
带有if的匿名函数:
注意:匿名函数只能有一条语句,而且函数必须有返回值。