python笔记:3.3——3.4(变量作用域、递归调用)

3.3变量作用域

分类:按照作用域分类

  • 全局(global): 在函数外部定义
  • 局部(local):在函数内部定义

变量的作用范围:

  • 全局变量:在整个全局范围都有效
  • 全局变量在局部可以使用(即函数内部可以方位函数外部定义的变量)
  • 局部变量在局部范围可以使用
  • 局部变量在全局范围无法使用

LEGB原则

  • L(Local)局部作用域
  • E(Enclosing function locale)外部嵌套函数作用域
  • G(Global module)函数定义所在模块作用域
  • B(Buildin): python内置魔抗的作用域
    在这里插入图片描述

提升局部变量为全局变量

  • 使用global
  • 案例
  • 在这里插入图片描述

globals, locals函数

  • 可以通过globals和locals显示出局部变量和全局变量

  • 案例

  • 在这里插入图片描述

  • eval()函数

  • 把一个字符串当成一个表达式来执行, 返回表达式执行后的结果

  • 语法:

          eval(string_code, globals=None, locals=None)
    

exec()函数

  • 跟eval功能类似, 但是,不返回结果
    - 语法:

3.4递归函数

  • 含税直接或者间接调用自身
  • 优点:简洁,理解容易
  • 缺点:对递归深度有限制,消耗资源大
  • python对递归深度有限制,超过限制报错
  • 在写递归程序的时候,一定注意结束条件
    在这里插入图片描述
    在这里插入图片描述

    内置数据结构(变量类型)

  • list
  • set
  • dict
  • tuple

list(列表)

  • 一组由顺序的数据的组合
  • 创建列表
    • 空列表
      在这里插入图片描述

列表常用操作

  • 访问
    • 使用下标操作(索引)
    • 列表的位置是从0开始
  • 分片操作
    • 对列表进行任意一段的截取
    • l[:]
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    分片操作是生成一个新的list

  • 内置函数id,负责显示一个变量或者数据的唯一确定编号
  • 在这里插入图片描述
  • 在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/LeBron_Jamess/article/details/89949506