[oeasy]python0012_程序写错了怎么办

简介: 这段内容主要讲述了如何处理Python文件运行时的`NameError`。首先,使用`vi`编辑器

运行python文件_报错处理_NameError  🥊 回忆上次内容

  • 回忆 上次内容
  • vi oeasy.py
  • 用 vi 编辑 oeasy.py


  • cat oeasy.py
  • 用 cat 查看 oeasy.py


  • python3 oeasy.py
  • 用 python3 运行 oeasy.py



添加图片注释,不超过 140 字(可选)

  • 空格之前的 是
  • 命令
  • 发出绿光
  • 可以执行


  • 空格之后的 是
  • 命令的参数
  • 命令执行的 目标对象


  • 如果 程序写
  • 该 如何修改 呢?🤔


重新编辑

  • 先输入vi oeasy.py
  • 重新编辑 oeasy.py文件


  • 如果上次写的 没了
  • 就 重新输入
  • 用i 进入插入模式


添加图片注释,不超过 140 字(可选)

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


保存并退出

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


添加图片注释,不超过 140 字(可选)

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


退回到shell

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


添加图片注释,不超过 140 字(可选)

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


添加图片注释,不超过 140 字(可选)

  • 准备运行程序

运行结果

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


添加图片注释,不超过 140 字(可选)

  • 不出所料
  • 报错了!🤗


出现Error

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


<span style="font-size:300px">😭</span>

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


bug

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


添加图片注释,不超过 140 字(可选)

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


添加图片注释,不超过 140 字(可选)

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


结果对比

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


添加图片注释,不超过 140 字(可选)

  • 程序运行 和 游乐场运行
  • 几乎 一样
  • 都是 NameError
  • 都不认识 pront 这个 name



  • 说明
  • python解释器python游乐场 是相通的
  • 本来 就是 一个程序嘛


  • 不过 还是 有一点区别的
  • 你能发现吗?


小区别

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


添加图片注释,不超过 140 字(可选)

  • 上面的 报错
  • 来自 oeasy.py
  • 是 硬盘上 写好的文件


  • 下面 的 报错
  • 来自 stdin
  • standard in
  • 标准输入流
  • 来自于 键盘的 直接输入


  • 具体怎么改呢?

新开终端

  • 从游乐场
  • 退回到 shell环境
  • 修改文件


  • 再用 vi 打开 oeasy.py
  • 进行修改后
  • 出现[+]
  • 但先不保存文件


添加图片注释,不超过 140 字(可选)

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


新开终端

  • 在桌面 再双击
  • 终端图标


  • 又新打开
  • 一个终端


添加图片注释,不超过 140 字(可选)

  • 键入
  • vi oeasy.py
  • 回车


打开了同一个文件

  • vim 应用程序
  • 报了一个错误
  • <span style="background:red;color:white;">E325: 注意</span>
  • 说明vim 发现了问题


添加图片注释,不超过 140 字(可选)

  • 因为 之前的终端
  • 已经打开了 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


添加图片注释,不超过 140 字(可选)

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


打开方式

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


添加图片注释,不超过 140 字(可选)

保存并运行

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


添加图片注释,不超过 140 字(可选)

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


保存并关闭

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


添加图片注释,不超过 140 字(可选)

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


再查看

  • 在第三个窗口
  • 查看缓存文件


ls -l .oeasy.py.swp

  • 由于 内容
  • 已经 存到了硬盘
  • 缓存文件 应该消失了


添加图片注释,不超过 140 字(可选)

  • 如果还没有消失
  • 就强制删除这个缓存


rm .oeasy.swp ls -l .oeasy.py.swp

  • 缓存已确认消失

添加图片注释,不超过 140 字(可选)

  • 如果 再用vim打开文件
  • 还会出现 <span style="background:red;color:white;">E325</span> 吗?


尝试运行oeasy.py

  • 直接打开

添加图片注释,不超过 140 字(可选)

  • 尝试运行oeasy.py

添加图片注释,不超过 140 字(可选)

  • 成功 运行了程序!

总结

  • 这次尝试了
  • 两个vim 同时打开
  • 同一py文件
  • vim出现了Error
  • 有各种选择



  • 错误拼写 pront 导致
  • 运行时 出现了NameError


添加图片注释,不超过 140 字(可选)

  • 错误(Error)
  • 不是 我们 无能的标记
  • 而是 我们 努力的见证
  • 更是 我们 进步的阶梯


  • 如果 程序里的 print
  • 字母没错
  • 大小写不同
  • 被误写成了 Print
  • 还会报错吗?🤔



相关文章
|
8月前
|
人工智能 Linux 开发工具
Python从零到一:手把手带你写出第一个实用程序
Python语法简洁易懂,适合编程新手入门。它广泛应用于人工智能、自动化办公、Web开发等领域。学习Python可快速搭建项目,拥有丰富库支持和强大社区资源。通过本教程,你将掌握基础语法、环境搭建、程序逻辑控制及实战项目开发,开启编程之旅。
1175 0
|
7月前
|
设计模式 决策智能 Python
Python条件控制:让程序学会"思考"的魔法
本文深入浅出地讲解Python条件控制,从基础if语句到多分支、嵌套结构,再到简洁的三元表达式与Python 3.10新增的match-case模式匹配,结合电商折扣、会员等级、ATM系统等实战案例,全面掌握程序“智能决策”的核心逻辑。
526 0
|
人工智能 Python
[oeasy]python089_列表_删除列表项_remove_列表长度_len
本文介绍了Python列表(list)的操作方法,重点讲解了`remove`方法的使用。通过实例演示如何删除列表中的元素,探讨了`ValueError`异常产生的原因,并分析了时间复杂度O(n)的概念。同时提及了`clear`方法清空列表的功能及`len`函数获取列表长度的用法。最后以购物清单为例,展示列表的实际应用场景,并预告快速生成列表的方法将在后续内容中介绍。
349 62
|
11月前
|
人工智能 并行计算 开发者
CUDA重大更新:原生Python可直接编写高性能GPU程序
NVIDIA在2025年GTC大会上宣布CUDA并行计算平台正式支持原生Python编程,消除了Python开发者进入GPU加速领域的技术壁垒。这一突破通过重新设计CUDA开发模型,引入CUDA Core、cuPyNumeric、NVMath Python等核心组件,实现了Python与GPU加速的深度集成。开发者可直接用Python语法进行高性能并行计算,显著降低门槛,扩展CUDA生态,推动人工智能、科学计算等领域创新。此更新标志着CUDA向更包容的语言生态系统转型,未来还将支持Rust、Julia等语言。
756 3
CUDA重大更新:原生Python可直接编写高性能GPU程序
|
10月前
|
PyTorch 算法框架/工具 C++
人工智能算法python程序运行环境安装步骤整理
本教程详细介绍Python与AI开发环境的配置步骤,涵盖软件下载、VS2017安装、Anaconda配置、PyCharm设置及组件安装等内容,适用于Windows系统,助你快速搭建开发环境。
|
11月前
|
存储 索引 Python
[oeasy]python093_find方法_指数为负数_index_实际效果
本文介绍了Python中`find`方法与索引(index)的使用,包括负数索引的实际效果。回顾了`eval`函数的应用,并强调类名如`str`、`int`、`list`不可用作变量名以避免覆盖。通过示例解析了负数索引在字符串和列表中的作用,以及`index`方法的三个参数(value、start、stop)的用法。同时对比了`index`和`find`方法的区别:`index`找不到子串时抛出`ValueError`,而`find`返回-1。最后总结了正负索引的使用场景及两者的特性,提供了相关学习资源链接。
522 8
|
人工智能 索引 Python
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
298 20
|
Python
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
309 17
|
Python 容器
[oeasy]python090_列表_构造_范围_range_start_end_step_步长
本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
392 12

推荐镜像

更多
下一篇
开通oss服务