Skip to content

Latest commit

 

History

History
184 lines (124 loc) · 3.84 KB

046-2957115-变量为什么要先声明赋值再使用_pdb_debug_调试赋值语句.sy.md

File metadata and controls

184 lines (124 loc) · 3.84 KB
show version enable_checker
step
1.0
true

pdb_debug_调试赋值语句_先声明赋值_再使用

回忆上次内容

  • 上次讲了
    • 赋值
    • assignment
    • 亲手 将 指派到 变量

图片描述

  • 赋值语句 能运行起来 吗?🤔

从变量开始

  • 变量需要
    • 声明 declaration
    • 赋值 assignment

图片描述

  • 声明
    • declaration
    • 把 变量名 介绍给大家
  • 赋值
    • assignment
    • 放到 变量
  • 来做个文件 跑起来试试??🤔

尝试调试

vi t.py
  • 复制程序
s1 = "oeasy"
s2 = "o2z"
print(s1, s2)
  • :w|!python3 %

图片描述

  • 程序 直接运行
    • 没有问题
  • 可以进行调试吗?

尝试调试

  • 不用python3 直接运行
    • 改用 pdb3
:w|!pdb3 %
  • 进入程序内部
    • 调试
    • dedug

图片描述

  • 看看 声明并赋值 是怎么完成的

回忆pdb过程

  • pdb的意思 是
    • python 的 debug程序

图片描述

  • help
    • 可以查看所有命令
  • h p
    • 查看p命令的使用方法

图片描述

  • p 可以输出表达式的值

观察

  • 一上来就
    • p s1
    • 输出s1的值

图片描述

  • NameError
    • 系统说 s1 没有被定义过
    • 不认识
  • 为什么?

观察位置

  • 程序 刚开始 运行
    • 好比 歌单里面三首歌

图片描述

  • 第1首还没播呢
    • 第1句的活儿 还没干呢
    • 没有 声明过 s1
    • 当然 就 不认识s1

执行第一句

  • next
    • 把第1首歌 播完了
    • 把 第1句话 执行完了
    • 把 s1 声明并赋值 了

图片描述

  • 此刻 再输出s1

图片描述

  • 由于 s1 已经被 声明过了
    • 现在 不就认识了 吗?😄
  • 那 现在 认识s2 吗?

图片描述

  • s2还不认识
    • 为什么?

观察位置

  • 刚执行了1句
    • 只 声明赋值了 s1

图片描述

  • 第2句 还没有执行
    • 第2句 的活儿 也还没干呢

图片描述

  • 第2句
    • 声明赋值 s2
  • 执行 第2句 之后
    • s2 能看见了吗?

再试

  • 第2句 执行 之后
    • 对s2 声明并赋值 完成后
    • 就能看见了

图片描述

  • 最后一句
    • 输出完成

图片描述

  • 都执行完
    • 就 返回
    • return 了

总结

  • 声明、赋值之
    • 能使用变量
  • 声明、赋值了之
    • 能使用变量

图片描述

  • 顺序 必须 清清楚楚
  • 那 声明的 变量
    • 具体存在哪儿呢? 🤔
  • 我们下次再说!👋