• 函数-参数-拆包


    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中会报错

  • 相关阅读:
    Shiro SessionContext和SessionKey的设计概念
    Shiro DefaultWebSessionManager的设计概念
    Shiro SessionDAO的设计概念
    Shiro DefaultSessionManager的设计概念
    Shiro 关于校验Session过期、有效性的设计概念
    Shiro AbstractValidatingSessionManager设计概念
    Windows 查看端口及杀掉进程
    Shiro Session及SessionManager的设计概念
    jQuery操作DOM节点
    jQuery动画效果
  • 原文地址:https://www.cnblogs.com/zhuxiang1633/p/8847771.html
Copyright © 2020-2023  润新知