运行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
  • 还会报错吗?
 


[oeasy]python0012_程序写错了怎么办的更多相关文章

  1. 使用 Java 程序写文件时,记得要 flush()

    使用 Java 程序往磁盘写文件时碰到了这样的问题:文件写不全. 假如内容(StringBuffer/StringBuilder)有 100W 个字符,但是通过 Java 程序写到文件里的却不到 10 ...

  2. 看程序写结果(program)

    看程序写结果(program) Time Limit:1000ms Memory Limit:64MB 题目描述 LYK 最近在准备 NOIP2017 的初赛,它最不擅长的就是看程序写结果了,因此它拼 ...

  3. 如果$.ajax函数迟迟得不到响应,那么最有可能出错的地方是请求参数写错了

    如下的$.ajax函数 $.ajax({ url: url,// 请求的地址 data:{id:id,pieceId:pieceId,pieceDesc:pieceDesc,actualStock:a ...

  4. 微信小程序 写音乐播放器 slider组件 将value设置为0 真机测试滑块不能回到起点

    最近在用微信小程序写一个音频播放页面,做时间进度的时候用到了slider插件,但是在自然播放完成,或者上/下切换的时候,将slider的value属性值设为0,开发工具上滑块会回到起点,有效.但是真机 ...

  5. 我发现 Linux 文档写错了

    作者:小林coding 图解计算机基础网站:https://xiaolincoding.com 大家好,我是小林. 周末的时候,有位读者疑惑为什么 Linux man 手册中关于 netstat 命令 ...

  6. 用CIL写程序:写个函数做加法

    前言: 上一篇文章小匹夫为CIL正名的篇幅比较多,反而忽略了写那篇文章初衷--即通过写CIL代码来熟悉它,了解它.那么既然有上一篇文章做基础(炮灰),想必各位对CIL的存在也就释然了,兴许也燃起了一点 ...

  7. uva 110 Meta-Loopless Sorts 用程序写程序 有点复杂的回溯水题

    题目要求写一个直接用比较排序的pascal程序,挺有趣的一题. 我看题目数据范围就到8,本来以为贪个小便宜,用switch输出. 然后发现比较次数是阶乘级别的,8的阶乘也是挺大的,恐怕会交不上去. 于 ...

  8. 【学习笔记】C#中HashTable和快速排序的用法,从单词频率统计小程序写起

    先瞎扯点别的.进入这个神圣的地方总需要些鞭策,阿西巴,我是被鞭策进来摆摊的程序猿.软件工程老师说,写程序,发博客,就来博客园.这是个号召力很强的口号.最近看网络营销 搜索引擎优化的书多一些,只能说王老 ...

  9. 收藏收藏:时隔一年,你关注的打造一个实用的TXT文本操作及日志框架,我们开源了,不再为程序写日志发愁(也支持.net core哦)

    记得做这个框架是在2018年刚接触.net core的时候,那个时候为了能够专心的研究我开始不写博客了,但是学有所成并在公司运用了近一年的时间了,决定回来和各位分享我们所掌握的那星星点点的知识,希望可 ...

  10. 没想到吧!关于Dubbo的『消费端线程池模型』官网也写错了。

    这是why的第 63 篇原创文章 荒腔走板 大家好,我是 why,欢迎来到我连续周更优质原创文章的第 63 篇.老规矩,先荒腔走板聊聊其他的. 上面这张图片是我前几天整理相册的时候看到的.拍摄于 20 ...

随机推荐

  1. 什么是Java线程池

    摘自:某个百度知道 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力. 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在 ...

  2. CSS——3D转换

  3. Angular等了三年,那个她已经来了

    Angular生态丰富,功能强大,支撑了许多大型项目的开发.而且一直在前方等待着其他框架跟上.但是不得不直面的一个问题就是:"在等待其他框架跟上的这三年",Angular在陆陆续续 ...

  4. 电源电路E24系列反馈电阻计算表格

    可调电源,包括DCDC.LDO电路的设计中,经常需要计算反馈电阻进行选型.为了提高效率,优化选型采购,抽空做了个表格进行快速计算. 1.一般反馈电阻电路如下. 输出电压公式为:Vout=Vfb*(Rh ...

  5. Anaconda安装Python的seaborn库

      本文介绍在Anaconda的环境中,安装Python语言中,常用的一个绘图库seaborn模块的方法.   seaborn模块是基于Matplotlib的数据可视化库,它提供了一种更简单.更漂亮的 ...

  6. DS Record

    八云蓝自动机 Ⅰ 首先我们对于操作 \(1\) 转换,我们给 \(k\) 单独再开一个点 \(a_c\),这样我们就可以把操作 \(1\) 转换成操作 \(2\) 了. 对于区间问题,我们考虑使用莫队 ...

  7. WIN11 WINDOWS 11 INTEL 12-13代大小核默认调度策略

    WIN11 WINDOWS 11 INTEL 12-13代大小核默认调度策略 生效的异类策略:使用异类策略0. 异类线程调度策略:自动. 异类短运行线程调度策略:自动.

  8. ArrayList、LinkedList、Vector 的区别

    ArrayList,Vector 底层是由数组实现,LinkedList 底层是由双线链表实现,从底层的实现可以得出它们的性能问题, ArrayList,Vector 插入速度相对较慢,查询速度相对较 ...

  9. github fork后对上游仓库的做rebase

    想对上游仓库做更新同步 先添加上游仓库 git remote add upstream https://github.com/原始作者/原始仓库.git 其中这里的upstream 是一个命名,和 o ...

  10. vue2 混入 (mixin) 带来的小惊喜

    最近在review自己写的代码时发现,在很多的地方都用了以下的代码块 1 async initCode() { 2 const resSource = await this.$API.syscode. ...