02 Python 函数的一些小笔记
函数的返回值
1.使用return可以返回多个值,如:return a,b 返回的数据类型是元组型
2.接收返回的元组可以如:c,d=demo() (假设demo()返回a,b元组),需要注意的是,接收的变量要和元组中的元素个数一致。
3.利用元组交换两个变量的值,a,b=(b,a) 可以简写为a,b=b,a
4.+=之类的东西本质上是在做extend的操作
5.函数中对可变数据类型进行操作会做直接作用在该可变数据类型上,对不可变数据类型操作则不会(局部变量)
函数形参的缺省值
1.定义形参时可以给形参直接赋值,代表此值为该形参的缺省值。当调用该函数值,若未输入参数,值默认为缺省值。例如:demo(a,b=0)。调用:demo(12),则传入的参数为a=12,而b=0(缺省值)。
2.缺省形参必须定义在最后,如:demo(a,b,c=1)正确,demo(a,b=0,c)错误。
3.sort()函数会直接修改原有列表(排序),sorted()则会返回一个排好序的新列表。sorted()可以接受任意数据类型的排序。
函数的多值参数
1.当一个函数需要传入不确定的个数的参数时,可以使用多值参数。
2.多值参数可分为元组型和字典型
3.形式分别为:def demo(*args) 和def demo(**kwargs)
3.可以联用:def demo(*args,**kwargs)
4.拆包:当使用多值参数的函数,传入元组或字典时,需要拆包
5.拆包格式,在调用多值参数函数时:demo(*a,**b),假设a为传入的元组,b为传入的字典。
递归函数
1.递归函数就是在函数内部调用自己
2.递归函数必须有参数
3.递归函数必须有出口,出口即判断是否继续进行递归的条件,用return结束递归
杂七杂八
1.shift+f6 修改指定变量的名称
2.全局变量建议格式为g_xxx或者gl_xxx
3.如果想在函数中修改全局变量的值,需在函数中声明全局变量,格式如:global <变量名>
4.全局变量应写在所有函数的上方,因为只有全局变量被首先声明了才能使用
5.变量是标签,数据的地址是不能被修改的,例如a=1,1的地址不会改变,a=1意味着将1的地址引用到a
当调用a时,实际上调用的是1
6.实参的调用也是数据地址的引用,同变量一样。
7.一个数据可以贴很多标签(被很多变量引用),例如a=1,b=1,实际上a与b都在引用1的地址
9.不可变的数据类型有:字符串,数字,元组。可变的数据类型有:列表,字典
10.字典的key不能使用可变的数据类型(即列表和元组),因为key名是不能变的,但可变数据类型可变。反之,可以使用字符串、数字、元组来当key名