• 函数的基本内容总结


    函数
     函数是对功能的封装
     语法:
         def函数名(形参列表)
            函数体(代码块,return)
    
     调用:函数名(实参列表)
    
    2,返回值
      return: 在函数执行的时候,如果遇到return,直接返回
      1,如果函数什么都不写,不写return,就没有返回值,得到的是none
      2,在函数中间或者末尾写return,返回的是none
      3,在函数中写return 值,返回一个值
      4,在函数中可以返回多个返回值,return 值1,值2,值3...,接收的是元组
    
    3,参数
      参数执行的时候给参数传递信息
      *形参:函数声明的位置的变量
      *实参:函数调用的时候给的具体的值
      传参:把实参交给形参的过程
    
      1,实参:
        位置参数:按照形参的参数位置,给形参传值
        关键字参数:按照形参的名字给形参传值
        混合参数:既用位置参数,也用关键参数
      2,形参:
        位置参数
        默认值参数: 先位置参数,后默认值参数
        动态参数
    1,函数的动态参数
      1, *args  位置参数动态传参
      2, *kwargs  关键字参数动态传参
      顺序: 位置参数 *args 默认值参数 *kwargs
      
      dec func(*args,*kwargs):
          pass
          
      形参的位置*,** : 聚合
      实参的位置*,** : 打散
    2,命名空间
      1,内置名称空间
      2,全局名称空间
      3,局部名称空间  
      
      作用域:
          1,全局作用域: 内置 + 全局
          2,局部作用域: 局部(函数被调用)
          globals():查看全局中的内容
          locals():查看作用域中的内容
    3,函数的嵌套
      函数可以互相的嵌套
    4,global和nonlocal的关键
      global:在局部访问全局中的内容  
      nonlocal:在局部访问外层函数离它最近的那个变量
    函数名的应用:(第一类对象)
        函数名的命名规范和变量是一样的
        函数名其实就是变量名
    
        可以作为列表中的元素进行存储
        def func1():
            pass
        def func2():
            pass
        list = [func1,func2]
        for el in list:
            el()
    
        可以作为参数传递给函数
        def func():
            pass
        def proxy(fn):
            fn()
        proxy(func)
    
        可以作为函数的返回值
        def func():
            def inner():
                pass
            return inner)
        func()()
    2,闭包
        在内层函数中访问外层函数的局部变量
        好处:
            1,保护你的变量不受外界影响
            2,可以让变量常驻内存
        写法:
            def outer():
                a = 10
                def inner():
                    print(a)
                return inner
  • 相关阅读:
    BZOJ1187 [HNOI2007]神奇游乐园(插头dp)
    BZOJ4926 皮皮妖的递推
    BZOJ3684 大朋友和多叉树(多项式相关计算)
    BZOJ4574 [Zjoi2016]线段树
    杜教筛进阶+洲阁筛讲解+SPOJ divcnt3
    从几场模拟考试看一类分块算法
    bzoj3142 luogu3228 HNOI2013 数列
    luogu3244 bzoj4011 HNOI2015 落忆枫音
    codeforces 286E Ladies' Shop
    BZOJ4825 单旋
  • 原文地址:https://www.cnblogs.com/feifeifeisir/p/9443375.html
Copyright © 2020-2023  润新知