python-基础-函数,,1 函数的定义和调用


1 函数的定义和调用

1.1 函数定义

技术分享图片

1.2 函数的调用

技术分享图片

2 函数参数

技术分享图片

技术分享图片

技术分享图片

>>> def fun(a, b, *args, **kwargs):...     """可变参数演示示例"""...     print "a =", a...     print "b =", b...     print "args =", args...     print "kwargs: "...     for key, value in kwargs.items():...         print key, "=", value...>>> fun(1, 2, 3, 4, 5, m=6, n=7, p=8)  # 注意传递的参数对应a = 1b = 2args = (3, 4, 5)kwargs: p = 8m = 6n = 7>>>>>>>>>>>> c = (3, 4, 5)>>> d = {"m":6, "n":7, "p":8}>>> fun(1, 2, *c, **d)    # 注意元组与字典的传参方式a = 1b = 2args = (3, 4, 5)kwargs: p = 8m = 6n = 7>>>>>>>>>>>> fun(1, 2, c, d) # 注意不加星号与上面的区别a = 1b = 2args = ((3, 4, 5), {‘p‘: 8, ‘m‘: 6, ‘n‘: 7})kwargs:>>>>>>

技术分享图片

3 函数返回值

技术分享图片

技术分享图片

4 局部变量和全局变量

局部变量

技术分享图片

全局变量

技术分享图片

技术分享图片

技术分享图片

总结:

在函数外边定义的变量叫做全局变量全局变量能够在所有的函数中进行访问如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,小技巧强龙不压地头蛇

技术分享图片

总结2:

在函数中不使用global声明全局变量时不能修改全局变量的本质是不能修改全局变量的指向,即不能将全局变量指向新的数据。列表和字典的可以不用globa声明的对于不可变类型的全局变量来说,因其指向的数据不能修改,所以不使用global时无法修改全局变量。对于可变类型的全局变量来说,因其指向的数据可以修改,所以不使用global时也可修改全局变量。

5 匿名函数

技术分享图片

技术分享图片

技术分享图片

python-基础-函数

评论关闭