[oeasy]python0012_程序写错了怎么办
- 回忆 上次内容
- 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后面的 [+]消失
- 提示
- 1行、15个字符
- 已写入
- :q
- quit 退出 (vim应用)
- 回到 shell环境
- 准备运行程序
- 输入 python3 oeasy.py
- 运行程序
- 不出所料
- 报错了!
- 这Error
- 确实 让我们感觉到 痛苦
- 但痛苦
- 让我们 感觉到
- 自己 是存在的
- 出错(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 应用程序
- 报了一个错误
- <span style="background:red;color:white;">E325: 注意</span>
- 说明vim 发现了问题
- 因为 之前的终端
- 已经打开了 oeasy.py
- 并且 进行了修改
- 但是还没保存到 硬盘中
- 只存了 缓存文件
- .oeasy.py.swp
- 后开的终端
- 想要 同时打开 oeasy.py
- 发现了 缓存文件.oeasy.py.swp
- 知道 oeasy.py 正在被别的终端 编辑着
- 可以看看 这个 缓存文件 吗?
- 再 新开 一个终端
- 第三个 终端
- 运行 下面的命令
- 确实可以看到
- 隐藏的缓存文件
- .oeasy.py.swp
- 该文件 有12K
- 那第二个终端窗口
- 还能打开这个文件吗?
- 回到第二个终端里 有几种选择
- 只读o</kdb>
- 直接编辑e (自动缓存之前的原始文件)
- 恢复r(恢复到自动缓存)
- 退出q</kdb>
- 终止a</kdb>
- 在 第2个 终端 里
- 选择 r
- 直接recovery 缓存
- 关闭
- 第一个终端
- 第二个 终端
- 在 第三个终端
- 修改文件
- 保存并退出
- 现在文件 都关闭了
- 也应该 没有 自动缓存 了
- 在第三个窗口
- 查看缓存文件
- 由于 内容
- 已经 存到了硬盘
- 缓存文件 应该消失了
- 如果还没有消失
- 就强制删除这个缓存
- 缓存已确认消失
- 如果 再用vim打开文件
- 还会出现 <span style="background:red;color:white;">E325</span> 吗?
- 直接打开
- 尝试运行oeasy.py
- 成功 运行了程序!
- 这次尝试了
- 两个vim 同时打开
- 同一py文件
- vim出现了Error
- 有各种选择
- 错误拼写 pront 导致
- 运行时 出现了NameError
- 错误(Error)
- 不是 我们 无能的标记
- 而是 我们 努力的见证
- 更是 我们 进步的阶梯
- 如果 程序里的 print
- 字母没错
- 但大小写不同
- 被误写成了 Print
- 还会报错吗?
- 我们下次再说!
[oeasy]python0012_程序写错了怎么办的更多相关文章
- 使用 Java 程序写文件时,记得要 flush()
使用 Java 程序往磁盘写文件时碰到了这样的问题:文件写不全. 假如内容(StringBuffer/StringBuilder)有 100W 个字符,但是通过 Java 程序写到文件里的却不到 10 ...
- 看程序写结果(program)
看程序写结果(program) Time Limit:1000ms Memory Limit:64MB 题目描述 LYK 最近在准备 NOIP2017 的初赛,它最不擅长的就是看程序写结果了,因此它拼 ...
- 如果$.ajax函数迟迟得不到响应,那么最有可能出错的地方是请求参数写错了
如下的$.ajax函数 $.ajax({ url: url,// 请求的地址 data:{id:id,pieceId:pieceId,pieceDesc:pieceDesc,actualStock:a ...
- 微信小程序 写音乐播放器 slider组件 将value设置为0 真机测试滑块不能回到起点
最近在用微信小程序写一个音频播放页面,做时间进度的时候用到了slider插件,但是在自然播放完成,或者上/下切换的时候,将slider的value属性值设为0,开发工具上滑块会回到起点,有效.但是真机 ...
- 我发现 Linux 文档写错了
作者:小林coding 图解计算机基础网站:https://xiaolincoding.com 大家好,我是小林. 周末的时候,有位读者疑惑为什么 Linux man 手册中关于 netstat 命令 ...
- 用CIL写程序:写个函数做加法
前言: 上一篇文章小匹夫为CIL正名的篇幅比较多,反而忽略了写那篇文章初衷--即通过写CIL代码来熟悉它,了解它.那么既然有上一篇文章做基础(炮灰),想必各位对CIL的存在也就释然了,兴许也燃起了一点 ...
- uva 110 Meta-Loopless Sorts 用程序写程序 有点复杂的回溯水题
题目要求写一个直接用比较排序的pascal程序,挺有趣的一题. 我看题目数据范围就到8,本来以为贪个小便宜,用switch输出. 然后发现比较次数是阶乘级别的,8的阶乘也是挺大的,恐怕会交不上去. 于 ...
- 【学习笔记】C#中HashTable和快速排序的用法,从单词频率统计小程序写起
先瞎扯点别的.进入这个神圣的地方总需要些鞭策,阿西巴,我是被鞭策进来摆摊的程序猿.软件工程老师说,写程序,发博客,就来博客园.这是个号召力很强的口号.最近看网络营销 搜索引擎优化的书多一些,只能说王老 ...
- 收藏收藏:时隔一年,你关注的打造一个实用的TXT文本操作及日志框架,我们开源了,不再为程序写日志发愁(也支持.net core哦)
记得做这个框架是在2018年刚接触.net core的时候,那个时候为了能够专心的研究我开始不写博客了,但是学有所成并在公司运用了近一年的时间了,决定回来和各位分享我们所掌握的那星星点点的知识,希望可 ...
- 没想到吧!关于Dubbo的『消费端线程池模型』官网也写错了。
这是why的第 63 篇原创文章 荒腔走板 大家好,我是 why,欢迎来到我连续周更优质原创文章的第 63 篇.老规矩,先荒腔走板聊聊其他的. 上面这张图片是我前几天整理相册的时候看到的.拍摄于 20 ...
随机推荐
- java的synchronized有几种加锁方式
在Java中,synchronized关键字提供了内置的支持来实现同步访问共享资源,以避免并发问题.synchronized主要有三种加锁方式: 1.同步实例方法 当一个实例方法被声明为synchro ...
- Asp-Net-Core开发笔记:给SwaggerUI加上登录保护功能
前言 在 SwaggerUI 中加入登录验证,是我很早前就做过的,不过之前的做法总感觉有点硬编码,最近 .Net8 增加了一个新特性:调用 MapSwagger().RequireAuthorizat ...
- 解密Prompt系列29. LLM Agent之真实世界海量API解决方案:ToolLLM & AnyTool
很早之前我们就聊过ToolFormer,Gorilla这类API调用的Agent范式,这一章我们针对真实世界中工具调用的以下几个问题,介绍微调(ToolLLM)和prompt(AnyTool)两种方案 ...
- 一文带你了解.NET能做什么?
前言 在DotNetGuide技术社区微信交流群经常看到有小伙伴问:.NET除了能写桌面应用和Web应用还能做什么?今天大姚将通过本篇文章来简单讲讲.NET能做哪些开发,对.NET感兴趣的小伙伴也可以 ...
- Django——form组件的局部钩子
如果对字段的校验条件太少,不能满足我们的需求,那么,我们可以对每个字段自定义校验的内容,就可以使用局部钩子. 局部钩子的使用方法: (1)导入错误类型 ----> 我们自己定义的钩子抛出的错误也 ...
- 莫烦tensorflow学习记录 (2)激励函数Activation Function
https://mofanpy.com/tutorials/machine-learning/tensorflow/intro-activation-function/ 这里的 AF 就是指的激励函数 ...
- ReplayKit2 采集音视频回调格式
一.音频 ReplayKit2 RPSampleBufferTypeAudioApp sampleBuffer = CMSampleBuffer 0x100500c50 retainCount: 1 ...
- k8s——搭建集群环境
服务器要求(三台都要操作) 一台master两台node 能连外网 关闭防火墙 关闭selinux 设置主机名,域名解析 关闭swap(记得关完之后重启) swapoff -a //临时关闭 vim ...
- 京东web端h5st—4.7逆向分析
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 aHR0cHM6 ...
- Linux扩展篇-shell编程(五)-流程控制(一)-if语句
基本语法: (1)单分支 if [ condition ];then statement(s) fi 或 if [ condition ] then statement(s) fi (2)多分支 if ...