Skip to content

Latest commit

 

History

History
320 lines (224 loc) · 6.65 KB

012-821073-运行python文件_报错处理_NameError.sy.md

File metadata and controls

320 lines (224 loc) · 6.65 KB
show version enable_checker
step
1.0
true

运行python文件_报错处理_NameError 🥋

回忆上次内容

  • 回忆 上次内容
    • vi oeasy.py
      • 用 vi 编辑 oeasy.py
    • cat oeasy.py
      • 用 cat 查看 oeasy.py
    • python3 oeasy.py
      • 用 python3 运行 oeasy.py

图片描述

  • 空格之前的 是
    • 命令
    • 发出绿光
    • 可以执行
  • 空格之后的 是
    • 命令的参数
    • 命令执行的 目标对象
  • 如果 程序写
    • 该 如何修改 呢?🤔

重新编辑

  • 先输入vi oeasy.py
    • 重新编辑 oeasy.py文件
  • 如果上次写的 没了
    • 就 重新输入
    • i 进入插入模式

图片描述

  • oeasy.py修改成
    • 上图的样子

保存并退出

  • esc 退出插入模式
    • 左下角的---插入(粘贴)---消失

图片描述

  • :w
    • write保存
    • oeasy.py后面的 [+]消失

退回到shell

  • 提示
    • 1行、15个字符
    • 已写入

图片描述

  • :q
    • quit 退出 (vim应用)
    • 回到 shell环境

图片描述

  • 准备运行程序

运行结果

  • 输入 python3 oeasy.py
    • 运行程序

图片描述

  • 不出所料
    • 报错了!🤗

出现Error

  • 这Error
    • 确实 让我们感觉到 痛苦

😭

  • 痛苦
    • 让我们 感觉到
    • 自己 是存在的

bug

  • 出错(bug)是
    • 最正常的

图片描述

  • Error
    • 不是 我们无能的标志
    • 而是 我们努力的标志
    • 更是 进步的阶梯

图片描述

  • 这个报错信息
    • 和IDLE(游乐场)一样 吗?

结果对比

  • 先去IDLE(游乐场)
    • 跑一下
    • pront("oeasy")

图片描述

  • 程序运行 和 游乐场运行
    • 几乎 一样
      • 都是 NameError
      • 都不认识 pront 这个 name
  • 说明
    • python解释器python游乐场 是相通的
    • 本来 就是 一个程序嘛
  • 不过 还是 有一点区别的
    • 你能发现吗?

小区别

  • 区别 如下图 红框 所示
    • 虽然 都在 报错信息 第2行
    • 但是 文件来源 不同

图片描述

  • 上面的 报错
    • 来自 oeasy.py
    • 是 硬盘上 写好的文件
  • 下面 的 报错
    • 来自 stdin
    • standard in
    • 标准输入流
    • 来自于 键盘的 直接输入
  • 具体怎么改呢?

新开终端

  • 从游乐场

    • 退回到 shell环境
    • 修改文件
  • 再用 vi 打开 oeasy.py

    • 进行修改后
    • 出现[+]
    • 但先不保存文件

图片描述

  • 此时如果 再开一个终端
    • 会冲突吗?

新开终端

  • 在桌面 再双击
    • 终端图标
  • 又新打开
    • 一个终端

图片描述

  • 键入
    • vi oeasy.py
    • 回车

打开了同一个文件

  • vim 应用程序
    • 报了一个错误
    • E325: 注意
    • 说明vim 发现了问题

图片描述

  • 因为 之前的终端

    • 已经打开了 oeasy.py
      • 并且 进行了修改
    • 但是还没保存到 硬盘中
    • 只存了 缓存文件
      • .oeasy.py.swp
      • 作为可恢复的历史记录
  • 后开的终端

    • 想要 再次打开 oeasy.py
    • 发现了 缓存文件.oeasy.py.swp
    • 知道 oeasy.py 正在被别的终端 编辑着
  • 可以看看 这个 缓存文件 吗?

再开新终端

  • 再 新开 一个终端
    • 第三个 终端
    • 运行 下面的命令
ls -lah .oeasy.py.swp
ls -lah oeasy.py
  • 确实可以看到
    • 隐藏的缓存文件
    • .oeasy.py.swp
    • 该文件 有12K

图片描述

  • 那第二个终端窗口
    • 还能打开这个文件吗?

打开方式

  • 回到第二个终端里 有几种选择
    • 只读o
    • 直接编辑e (编辑自动缓存之前的原始文件)
    • 恢复r(恢复到自动缓存)
    • 退出q
    • 终止a

图片描述

保存并运行

  • 在 第2个 终端 里
    • 选择 r
    • 直接recovery 缓存

图片描述

  • 关闭
    • 第一个终端
    • 第二个 终端

保存并关闭

  • 在 第三个终端
    • 修改文件

图片描述

  • 保存并退出
    • 现在文件 都关闭了
    • 也应该 没有 自动缓存 了

再查看

  • 在第三个窗口
    • 查看缓存文件
ls -l .oeasy.py.swp
  • 由于 内容
    • 已经 存到了硬盘
    • 缓存文件 应该消失了

图片描述

  • 如果还没有消失
    • 就强制删除这个缓存
rm .oeasy.swp
ls -l .oeasy.py.swp
  • 缓存已确认消失

图片描述

  • 如果 再用vim打开文件
    • 还会出现 E325 吗?

尝试运行oeasy.py

  • 直接打开

图片描述

  • 尝试运行oeasy.py

图片描述

  • 成功 运行了程序!

总结

  • 这次尝试了
    • 两个vim 同时打开
      • 同一py文件
      • vim出现了Error
      • 有各种选择
  • 错误拼写 pront 导致
    • 运行时 出现了NameError

图片描述

  • 错误(Error)

    • 不是 我们 无能的标记
    • 而是 我们 努力的见证
    • 更是 我们 进步的阶梯
  • 如果 程序里的 print

    • 字母没错
    • 大小写不同
    • 被误写成了 Print
    • 还会报错吗?🤔
  • 我们下次再说!👋

  • 视频总结