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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 这段内容主要讲述了如何处理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
  • 还会报错吗?🤔



目录
打赏
0
0
0
0
172
分享
相关文章
CUDA重大更新:原生Python可直接编写高性能GPU程序
NVIDIA在2025年GTC大会上宣布CUDA并行计算平台正式支持原生Python编程,消除了Python开发者进入GPU加速领域的技术壁垒。这一突破通过重新设计CUDA开发模型,引入CUDA Core、cuPyNumeric、NVMath Python等核心组件,实现了Python与GPU加速的深度集成。开发者可直接用Python语法进行高性能并行计算,显著降低门槛,扩展CUDA生态,推动人工智能、科学计算等领域创新。此更新标志着CUDA向更包容的语言生态系统转型,未来还将支持Rust、Julia等语言。
187 3
CUDA重大更新:原生Python可直接编写高性能GPU程序
[oeasy]python093_find方法_指数为负数_index_实际效果
本文介绍了Python中`find`方法与索引(index)的使用,包括负数索引的实际效果。回顾了`eval`函数的应用,并强调类名如`str`、`int`、`list`不可用作变量名以避免覆盖。通过示例解析了负数索引在字符串和列表中的作用,以及`index`方法的三个参数(value、start、stop)的用法。同时对比了`index`和`find`方法的区别:`index`找不到子串时抛出`ValueError`,而`find`返回-1。最后总结了正负索引的使用场景及两者的特性,提供了相关学习资源链接。
311 8
|
3月前
|
[oeasy]python092_eval_衡量_转化为列表
本文探讨了 Python 中 `eval` 函数的用法及其与字符串和列表之间的转换关系。通过实例分析,展示了如何使用 `eval` 将字符串转化为对应的数据类型,例如将表示列表的字符串转回列表。同时,文章深入讲解了 `eval` 的工作机制,包括根据本地和全局变量对字符串进行计算的能力。此外,还提醒了命名变量时需避免覆盖内置类名(如 `str`、`int`、`list`)的重要性,以免影响程序正常运行。最后,简要提及字符串和列表索引中负数的应用,并为读者提供了进一步学习的资源链接。
78 2
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
86 20
|
3月前
|
[oeasy]python090_列表_构造_范围_range_start_end_step_步长
本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
124 15
[oeasy]python089_列表_删除列表项_remove_列表长度_len
本文介绍了Python列表(list)的操作方法,重点讲解了`remove`方法的使用。通过实例演示如何删除列表中的元素,探讨了`ValueError`异常产生的原因,并分析了时间复杂度O(n)的概念。同时提及了`clear`方法清空列表的功能及`len`函数获取列表长度的用法。最后以购物清单为例,展示列表的实际应用场景,并预告快速生成列表的方法将在后续内容中介绍。
153 62
[oeasy]python088_列表_清空列表_clear
本文介绍了Python中列表的清空方法`clear`。通过实例讲解了`clear`与将列表赋值为空列表的区别,前者会清空原列表内容,而后者创建新空列表,不影响原列表。文中以收银程序为例,展示了`clear`的实际应用场景,并通过地址观察解释了两者的机制差异。最后总结了相关术语如`list`、`append`、`clear`等,帮助理解列表操作及方法调用的概念。
78 6
|
3月前
|
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
89 17
[oeasy]python083_类_对象_成员方法_method_函数_function_isinstance
本文介绍了Python中类、对象、成员方法及函数的概念。通过超市商品分类的例子,形象地解释了“类型”的概念,如整型(int)和字符串(str)是两种不同的数据类型。整型对象支持数字求和,字符串对象支持拼接。使用`isinstance`函数可以判断对象是否属于特定类型,例如判断变量是否为整型。此外,还探讨了面向对象编程(OOP)与面向过程编程的区别,并简要介绍了`type`和`help`函数的用法。最后总结指出,不同类型的对象有不同的运算和方法,如字符串有`find`和`index`方法,而整型没有。更多内容可参考文末提供的蓝桥、GitHub和Gitee链接。
77 11
[oeasy]python082_变量部分总结_variable_summary
本文介绍了变量的定义、声明、赋值及删除操作,以及Python中的命名规则和常见数据类型。通过示例讲解了字符串与整型的基本用法、类型转换方法和加法运算的区别。此外,还涉及异常处理(try-except)、模块导入(如math和random)及随机数生成等内容。最后总结了实验要点,包括捕获异常、进制转化、变量类型及其相互转换,并简述了编程中AI辅助的应用策略,强调明确目标、分步实施和逐步巩固的重要性。更多资源可在蓝桥、GitHub和Gitee获取。
198 97

云原生

+关注

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问