[oeasy]python065python报错怎么办_try_试着来_except_发现异常

overmind1980 2025-02-11 17:38:14

python报错怎么办_try_试着来_except_发现异常 回忆上次内容

上次回顾了

shell环境

python3游乐场

vim编辑器

以及他们之间的切换

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

准备 编辑个 好玩的程序

编辑文件

每个 苹果 2公斤

根据 苹果数量

算出 苹果份量

a = input("How many apples do you have:") weight = a * 2 print("You have ",weight, "kg apples.")

尝试运行

结果

尝试运行

注意其中的数字是运行时输入的!

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

3个苹果

理论上是6公斤

现在 怎么就33公斤了呢?🤔

深入调试

:!pdb3 %

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

输入函数input的返回值类型

是字符串str

字符串乘法 用的是 拼接法

导致结果出错

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

求助

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

需要将 输入的 苹果数量

从 字符串类型 (str)

转化为 整数类型 (int)

尝试转化 a = input("How many apples do you have:") weight = int(a) * 2 print("You have ",weight, "kg apples.")

修改之后 问题解决

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

但是

如果 输入的数值

无法转化 为 数字 呢?

比如 输入的 苹果数量 是

字符串"abc"

int("abc")会发生什么??😱

错误输入

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

输入了abc

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

该怎么办 呢?

问问ai

直接 把报错信息

复制出来

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

告诉ai

ai结果

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

新关键字 try

试着来

try

试着来

try后面跟 冒号

就像 之前的 for和if

<font color="red">注意!!!</font>

冒号

是英文半角的

except 后面也是

try:     # 接收用户输入苹果数量     a = input("How many apples do you have:")     # 将输入转换为整数并乘以 2 得到重量     weight = int(a) * 2 # 打印结果 print("You have ", weight, "kg apples.") except ValueError:     print("Please enter a valid integer.")

冒号后面有缩进

缩进的是

需要try的 内容

缩进4字符

怎样

快速 缩进 来着?

TAB 空格数量

缩进距离 不多不少

4字符刚好

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

使用 键盘中的Tab

进行缩进

vim 会把 \t

转化为4个空格

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

就像 for循环 冒号后面

需要缩进 一样

try 也需要 缩进

为什么要使用try

try的必要性

使用python就像科学小实验

你不知道会发生什么异常

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

有了try就可以试着做

并且 能够处理各种情况

try

输出结果

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

我想 把错误瞒下来

不报错🤪

可以么?

不报错

<font style="color:red;font-size:48px;">这不行!!!😡</font>

异常错误 不处理不行

要明确地报错

要明确地处理

知道哪里错了

才好修改

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

如果 假装 没犯错

就会 失去处理线索

会犯更大的错误

错误大了

到时候 就算想改

也不知道 怎么改了

绝对让人 彻底崩溃

对应禅语 import this

错误 不应被 悄悄传递

除非 你确定 需要这样做

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

精准地 捕获异常

不写 except:pass 风格的代码

那什么是

except:pass 风格的代码呢?

异常飘过 try:     a = input("How many apples do you have:")     weight = int(a) * 2 print("You have ",weight, "kg apples.") except:     pass

知错不报错

虽然 except接收到了错误

但是 轻轻飘过pass

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

上面这种是最要命的

让人没法追踪trace的痕迹

无法调试debug!

无语问苍天😭!

pass、try、except也是关键字吗?

如何查看关键字

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

新关键字 help("keywords")

新关键字增加了

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

去总结

总结

这次学习了

try

except

try着  尝试着 运行

一旦发现了 错误

就 终止 try中的执行

直接跳转到

except块

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

注意要点

半角冒号

缩进

错误信息输出

有错 就报

不要 忽略、隐瞒

否则 找不到 出错位置

究竟 应该如何理解

try...except...呢?🤔

下次再说!👋

蓝桥->https://www.lanqiao.cn/courses/3584

github->https://github.com/overmind1980/oeasy-python-tutorial

gitee->https://gitee.com/overmind1980/oeasypython

0 阅读:0