Python-函数

函数

定义函数

def 函数名():
    代码

全局与局部变量

建议全局变量定义为 g_a=100

如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错

a=100
def test():
    global a=200 #修改全局变量的值的时候要在前面加上global
test()

对于可变类型的全局变量(列表,字典)来说,因其指向的数据可以修改,所以不使用global时也可修改全局变量。

返回值

函数返回多个值:本质上利用了元组

 def test():
       a=10
       b=5
       return a,b
 c,d=test()
 print(c,d)

缺省参数

带有默认值的参数要一定要放在参数列表的最后面

    def test(a,b=22)#正确
    def test(a,b=22,c=33)#正确
    def test(a=22,b)#不正取

    def test(a,b=22,c=33):
        print(a b c)
    test(11,55)#11 55 33
    test(11,c=55)#11 22 55
    test(c=44,b=33,a=22)#22 33 44

不定长参数

有时需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数
加了(*)号的变量args会存放所有未命名的变量参数,args为元组;而加了两个的kwargs会存放命名参数,即key=value形式,kwargs为字典

    def fun(a, b, *args, **kwargs):
    >>> 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 = 1
    b = 2
    args = (3, 4, 5)
    kwargs: 
    p = 8
    m = 6
    n = 7   

元组,字典的拆包:参数加一个*号表示元组,两个表示字典

c = (3, 4, 5)
d = {“m”:6, “n”:7, “p”:8}
fun(1, 2, *c, **d) # 注意元组与字典的传参方式
a = 1
b = 2
args = (3, 4, 5)
kwargs:
p = 8
m = 6
n = 7

不加的话:

fun(1, 2, c, d) # 注意不加星号与上面的区别
a = 1
b = 2
args = ((3, 4, 5), {‘p’: 8, ‘m’: 6, ‘n’: 7})
kwargs:

引用

id()可以看到变量所在的内存地址

    In [2]: a=100

    In [3]: id(a)
    Out[3]: 10917536

    In [4]: b=a

    In [5]: id(b)
    Out[5]: 10917536

不可变类型

python中不可改变的类型:元组,数组,字符串
可变类型:列表,字典

字典的key只要是不可变类型都可以,因为它是把key用hash算法转换为唯一的值去对应相应的value

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值