python报错怎么办_try_试着来_except_发现异常 回忆上次内容
上次回顾了
shell环境
python3游乐场
vim编辑器
以及他们之间的切换
准备 编辑个 好玩的程序
编辑文件
每个 苹果 2公斤
根据 苹果数量
算出 苹果份量
a = input("How many apples do you have:") weight = a * 2 print("You have ",weight, "kg apples.")
尝试运行
结果
尝试运行
注意其中的数字是运行时输入的!
3个苹果
理论上是6公斤
现在 怎么就33公斤了呢?🤔
深入调试
:!pdb3 %
输入函数input的返回值类型
是字符串str
字符串乘法 用的是 拼接法
导致结果出错
求助
需要将 输入的 苹果数量
从 字符串类型 (str)
转化为 整数类型 (int)
尝试转化 a = input("How many apples do you have:") weight = int(a) * 2 print("You have ",weight, "kg apples.")
修改之后 问题解决
但是
如果 输入的数值
无法转化 为 数字 呢?
比如 输入的 苹果数量 是
字符串"abc"
int("abc")会发生什么??😱
错误输入
输入了abc
该怎么办 呢?
问问ai
直接 把报错信息
复制出来
告诉ai
ai结果
新关键字 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字符刚好
使用 键盘中的Tab
进行缩进
vim 会把 \t
转化为4个空格
就像 for循环 冒号后面
需要缩进 一样
try 也需要 缩进
为什么要使用try
try的必要性
使用python就像科学小实验
你不知道会发生什么异常
有了try就可以试着做
并且 能够处理各种情况
try
输出结果
我想 把错误瞒下来
不报错🤪
可以么?
不报错
<font style="color:red;font-size:48px;">这不行!!!😡</font>
异常错误 不处理不行
要明确地报错
要明确地处理
知道哪里错了
才好修改
如果 假装 没犯错
就会 失去处理线索
会犯更大的错误
错误大了
到时候 就算想改
也不知道 怎么改了
绝对让人 彻底崩溃
对应禅语 import this
错误 不应被 悄悄传递
除非 你确定 需要这样做
精准地 捕获异常
不写 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
上面这种是最要命的
让人没法追踪trace的痕迹
无法调试debug!
无语问苍天😭!
pass、try、except也是关键字吗?
如何查看关键字
新关键字 help("keywords")
新关键字增加了
去总结
总结
这次学习了
try
except
try着 尝试着 运行
一旦发现了 错误
就 终止 try中的执行
直接跳转到
except块
注意要点
半角冒号
缩进
错误信息输出
有错 就报
不要 忽略、隐瞒
否则 找不到 出错位置
究竟 应该如何理解
try...except...呢?🤔
下次再说!👋
蓝桥->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython