• 函数-参数-拆包


    1.定义

    def fun():

      pass

    fun()

    2.参数

    默认值:

    def fun2(a,b=20,c=1):
        print(a)
    fun2(a=20,c=29)
    fun2(10,30)

    不定长参数:

    def add(a,b,*args):   #元组
        print(a)
        print(b)
        print(args) #(45, 34, 5)
    add(12,3,45,34,5)

     拆包

    A =(1,23,4)

    B= {'age':100, 'name':'join'}

    fun(10,20, *A, **B)  -->等价于 fun(10,20,1,23,4, age=100, name='join')

    fun(10,20,A,B)   --->A和B仅仅是一个变量,和10没什么区别

    def fun3(a,b,*args,**kwargs):
        print(a)
        print(b)
        print(args) #()
        print(kwargs) #{'age': 'lisi', 'name': 'zhangsan'}
    fun3(12,4,name="zhangsan",age="lisi")  #参数顺序不能改变

      A=(1,2,3)
      B={'name':'zhangsan','age':20}
     fun3(12,3,A,B)
      fun3(12,3,*A,**B)  #  拆包 将*A拆成(,),,将**B拆成{key:value}
    ->

    (1, 2, 3)
    {'age': 20, 'name': 'zhangsan'}

     值反馈:

      对于不可变类型(数字,字符串,元组),没有反馈作用;可变类型可以修改;

      本质就是赋值

    3.返回值

     return a,b,c   -->(a,b,c)

     return [a,b,c]

    4.局部变量

    a=100
    def fun():
        # global a;#声明为全局变量
        a=200   #定义变量,此为局部变量
        print(a)
    fun()
    print(a)

     对于引用类型的变量,可以在局部变量进行修改

    5.全局变量

    建议全局变量命名为:g_a

    6.匿名函数 lambda表达式

     fun = lambda 参数:式子

    fun = lambda a,b:a+b   #只能写表达式
    c = fun(10,20)

    应用:

    1.排序

    a=[ {'name':'zhangsan','age':12}, {'name':'lsii','age':22}, {'name':'admin','age',32}] 

    a.sort(key=lambda x:x['age])   不可加空格

    def test(a,b,func):
        print(func(a,b))
    func=input('请输入lambda表达式')
    test(11,22,func) 

    python2中,输入的字符串当做表达式执行,

    在python3中会报错

  • 相关阅读:
    lyft amundsen简单试用
    Prisma 2 is Coming Soon
    amundsen 来自lyft 的开源数据发现平台
    packr 方便的潜入静态资源文件到golang 二进制文件中
    hasura skor 构建安装
    Oracle中删除用户下所有对象的多种方法
    负载均衡----实现配置篇(Nginx)
    【nginx】配置Nginx实现负载均衡
    Vmware ESXi添加共享磁盘
    从Oracle迁移到MySQL的各种坑及自救方案
  • 原文地址:https://www.cnblogs.com/zhuxiang1633/p/8847771.html
Copyright © 2020-2023  润新知