上节课的补充
字典的键(key) 和集合的值都是唯一的,如果插入相同的会进行替换
函数
它可以解决两个问题
1.重复性
2.封装
定义函数语法格式
def + 函数名 + () +:
封装的代码(调用函数执行的代码)
调用函数语法格式
函数名+()
光定义是没有用的,要调用出来才行
函数有两种状态
1.有返回值:执行封装的代码,并返回 return关键字后面的内容(如果以后还要对某个数据继续操作,就需要有返回值)
2.没有返回值:执行封装的代码?
参数:我们会把需要改变的值,或者可能改变额值,不一样的值定义为参数(本质就是变量) ,写在() 里面
python函数种主要有三种参数,必备参数、默认参数、不定长参数。
其中不定长参数有元组和字典两种类型
必备参数:直接写变量名就是必备参数
默认参数:具有默认值的参数,不写就是默认值
不定长参数:可以传入任意个数的值
元组:*+参数名或者(args),会讲传入的参数放入元组
字典:**+参数名(kwargs) ,会将传入的参数放入字典,字典只能放在最后,要不然会报错
注:1.调用时不用+*
2.除字典外其他不定长参数只能放在最后,要不然容易报错
3.函数顺序有讲究,先是必备参数,然后默认参数,再是不定长参数不定长参数也先是元组再是字典
文档功能:因为python是团队开发,所以会有很多人使用,当你写的代码别人不懂时,文档功能可以帮忙查询,这样回方便很多
使用方式是-> + None(没有返回值) 或者+返回值类型(int,str,bool等等)
函数的作用域
函数内部内部可以访问外部的变量,但不能修改(不能修改不可变对象的值,但能修改可变量的值)
但函数内部定义的变量,外部不能使用
外部的变量叫全局变量,函数内部的变量叫局部变量
函数的作用域—全局作用域
如果想在函数中改变外部不可变对象变量的值,就需要在函数里面使用global关键字了
注意:函数内外名字要一致,否则就会变成一个新的变量
global是全局变量声明,在使用global后可以在整个py文件中使用
函数作用域—局部作用域
如果在嵌套函数中,就不能使用global关键字了,要不然就会报错,。这种情况我们要使用nonlocal关键字
函数作用域—闭包
闭包就是为了防止函数被随意修改,用一个函数把它保护起来。主要就是可以在外面修改函数里面的值
递归和匿名函数
递归:方法自己调用自己
就像while循环,需要条件控制,要不然就会一直循环
求阶乘(5的阶乘就是1*2*3*4*5)
补充
注:return有两个方法,第一个作用是结束循环,第二个作用是返回我们想要的值
匿名函数:没有函数名的函数
语法规lambda+参数+,+参数+执行内容,然后用print输出
跟三元运算一样,好处是简洁了,坏处是可读性降低了