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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
简介: 这段内容主要讲述了如何处理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天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
8天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
9天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
11天前
|
人工智能 Shell 开发工具
[oeasy]python0041_输出ASCII码表_英文字符编码_键盘字符_ISO_646
本文介绍了ASCII码表的生成与使用,包括英文字符、数字和符号的编码。通过Python代码遍历0到127的ASCII值,解决了找不到竖线符号的问题,并解释了ASCII码的固定映射关系及其重要性。文章还介绍了ASCII码的历史背景,以及它如何成为国际标准ISO 646。最后,通过安装`ascii`程序展示了完整的ASCII码表。
11 1
|
20天前
|
机器学习/深度学习 算法 编译器
Python程序到计算图一键转化,详解清华开源深度学习编译器MagPy
【10月更文挑战第26天】MagPy是一款由清华大学研发的开源深度学习编译器,可将Python程序一键转化为计算图,简化模型构建和优化过程。它支持多种深度学习框架,具备自动化、灵活性、优化性能好和易于扩展等特点,适用于模型构建、迁移、部署及教学研究。尽管MagPy具有诸多优势,但在算子支持、优化策略等方面仍面临挑战。
52 3
|
22天前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
30 4
|
22天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
25 3
|
25天前
|
存储 人工智能 数据挖掘
Python编程入门:构建你的第一个程序
【10月更文挑战第22天】编程,这个听起来高深莫测的词汇,实际上就像搭积木一样简单有趣。本文将带你走进Python的世界,用最浅显的语言和实例,让你轻松掌握编写第一个Python程序的方法。无论你是编程新手还是希望了解Python的爱好者,这篇文章都将是你的理想起点。让我们一起开始这段奇妙的编程之旅吧!
20 3
|
29天前
|
存储 Python
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
20 1
|
15天前
|
人工智能 开发工具 Python
[oeasy]python040_缩进几个字符好_输出所有键盘字符_循环遍历_indent
本文探讨了Python代码中的缩进问题。通过研究`range`函数和`for`循环,发现缩进对于代码块的执行至关重要。如果缩进不正确,程序会抛出`IndentationError`。文章还介绍了Python的PEP8规范,推荐使用4个空格进行缩进,并通过示例展示了如何使用Tab键实现标准缩进。最后,通过修改代码,输出了从0到122的字符及其对应的ASCII码值,但未能找到竖线符号(`|`)。文章在总结中提到,下次将继续探讨竖线符号的位置。
11 0
下一篇
无影云桌面