python函数

python函数,第1张

python函数

抽象成函数

def fact(n):
    res=1
    for i in range(1,n+1):
        res+=i;
    return res
print(fact(10))

56

关键字参数–用于参数比较多的情况下

def fuct(x,y,z):
    print(x,y,z)

fuct(y=1,x=6,z=9)

6 1 9

关键字参数可以与位置参数混搭使用,但关键字参数必须在前面

默认参数必须放在非默认参数的后面

默认参数一定要是不可变的类型(数字,字符串,元组)

可变长参数 *args

不知道会传过来多少参数 *args

该形参必须放在参数列表的最后

def foo(x,y,z,*args):
    print(x,y,z)
    print(args)
    
foo(1,2,3,7,9,10)  #多余的参数,打包传递给args

1 2 3
(7, 9, 10)

实参打散:

def foo(x,y,z,*args):
    print(x,y,z)
    print(args)
    
foo(1,2,3,[4,5,6])
foo(1,2,3,*[1,2,3])   #打散的是列表,字符串,元组或集合

1 2 3
([4, 5, 6],)
1 2 3
(1, 2, 3)
可变长的参数 **kwargs 与字典有关

同样要放在参数的最后面

def foo(x,y,z,**kwargs):
    print(x,y,z)
    print(kwargs)
    
foo(1,2,3,a=5,b=8)

1 2 3
{'a': 5, 'b': 8}

同样可以打散

可接受任意参数:

def foo(*args,**kwargs):
函数体与变量的作用域

在函数体内部定义的变量—局部变量----仅在函数体内部发挥作用

在函数外部定义的变量—全局变量-----函数内外都可以用

通过 global 在函数体内定义全局变量

def mul(x,y):
    global z
    z=x*y
    return z

mul(3,4)
print(z)

12
返回值

单个返回值直接return

多个返回值—以元组的形式

def foo(x):
    return 1,x,x**2,x**3

a,b,c,d=foo(3)    #解包赋值
print(a)
print(b)
print(c)
print(d)

1
3
9
27

没有return ,返回值为none

匿名函数

lambda 变量 :函数体

常用在列表中,尤其是与 key=搭配

  1. sort(), sorted()
ls=[(92,22),(89,12),(77,89),(56,87)]
ls.sort()
ls
[(56, 87), (77, 89), (89, 12), (92, 22)]

ls.sort(key=lambda x:x[1])
ls
[(89, 12), (92, 22), (56, 87), (77, 89)]

ls.sort(key=lambda x:x[1]+x[0])
ls
[(89, 12), (92, 22), (56, 87), (77, 89)]

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5495941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存