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

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
云原生网关 MSE Higress,422元/月
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文介绍了Python中变量的声明与赋值过程,通过pdb调试工具演示了如何逐步执行代码,观察变量声明和赋值的时机。强调了变量必须先声明赋值后才能使用的原则,并展示了调试过程中的一些常见命令和技巧。最后提到变量的具体存储位置将在后续课程中讲解。

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 了

总结

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

  • 顺序 必须 清清楚楚
  • 那 声明的 变量
  • 具体存在哪儿呢? 🤔
相关文章
|
存储 Shell 编译器
makefile 变量赋值方式
makefile 变量赋值方式
116 1
|
7月前
|
Go
go常量显示定义、隐式定义、iota
go常量显示定义、隐式定义、iota
|
7月前
|
Go
go变量定义、变量交换、匿名变量
go变量定义、变量交换、匿名变量
makefile 变量的替换,嵌套引用,命令行变量
makefile 变量的替换,嵌套引用,命令行变量
129 1
|
8月前
|
存储 编译器 C语言
Makefile变量的引用与赋值
Makefile变量的引用与赋值
122 0
|
8月前
|
索引 Python
完美解决丨#在python中,如果引用的变量未定义,则会报告NameError: name ‘变量名‘ is not defined。
完美解决丨#在python中,如果引用的变量未定义,则会报告NameError: name ‘变量名‘ is not defined。
|
C++ Windows
VS2019错误:_main已经在.obj中定义,找到一个或多个重定义符号
VS2019错误:_main已经在.obj中定义,找到一个或多个重定义符号
2158 0
|
存储 传感器 Python
[oeasy]python0132_变量含义_meaning_声明_declaration_赋值_assignment
[oeasy]python0132_变量含义_meaning_声明_declaration_赋值_assignment
103 0
[oeasy]python0132_变量含义_meaning_声明_declaration_赋值_assignment
|
C# 索引
C#之常量与变量排错
C#之常量与变量排错