1.局部变量
在函数内部定义的变量
2.全局变量
在函数外边定义的变量叫做全局变量,全局变量能够被所有函数访问;如果函数内部的变量名和全局变量名一致,那么函数内部的变量名和全局变量不是一个变量。
如果此时全局变量名和局部变量名一样,但是想局部变量 和全局变量是同一个变量,只需要在函数里添加global 变量名即可
3.函数参数
(1)缺省参数
注意:如果函数带有默认值的参数一定要位于参数列表的最后
(2)不定长参数:
注意:加了星号(*)的变量args会存放所有未命名的变量参数,args为元组
而加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典
如果一个函数里有缺省参数,不定长参数*args ,**kwargs,那么缺省参数要放到*args后面,但是**kwargs必须放到最后
def sum_nums_3(a, *args, b=22, c=33, **kwargs): print(a) print(b) print(c) print(args) print(kwargs) sum_nums_3(100, 200, 300, 400, 500, 600, 700, b=1, c=2, mm=800, nn=900)
4.拆包:主要用于字典,列表,元组
如果一个元组有多个元素,使变量名和元素一一对应,那么就需要用到拆包了
如:a,b,c,d=(1,2,3,4)
那么对应的变量名的值分别为:a=1,b=2,c=3,d=4
注意:拆包时要注意,需要拆的数据的个数要与变量的个数相同,否则程序会异常
拆包还可以用于交换两个变量
如:
a=10
b=20
a,b=b,a
打印的结果就是:a=20,b=10