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)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值