2023年11月29日发(作者:)
pythonkeyerror_Python三⼤错误类型完全解析
本⽂含 5048 字, 5 图表截屏 建议阅读 23 分钟 在公众号王的机器后台回复 ERR 获取完整 Jupyter Notebook0引⾔
⽤ Python 写代码的流程(flow)可类⽐成三种演绎故事的形式,按顺序写、按条件写(if)、重复写(while, for),这些都叫做流程控制
(control flow)。
按顺序:⼀句⼀句写
按条件:⽤ if 语句
按重复:
关键词拼错:print 打成 primt
函数最后没带冒号:def fun()
字符串最后没带引号:'error
括号不匹配:print(
缩进位置错误
等等。
分析上图具体的中⽂和 Python 代码的语法错误例⼦:
# 中⽂昨天,送给我⼏本书。# Python 代码print('I love you)
那句中⽂缺少主语。
那句代码字符串没有引号。
那句中⽂虽然没任何语法错误,也可能发⽣(运⽓好赌对了),但是毫⽆逻辑。
那句代码想求 a 和 b 的均值,应该写成 (a+b)/2 但是写成 a+b/2。
2具体错误
由下图所⽰,程序开始时有两种可能,1. 没报错,2. 报错。没报错时程序按照顺序、按照条件语句(if),按照循环语句(for, while)跑,如果
报错了 Python 会给你很详细的信息。
下表是最齐全的错误层级表,每个错误类型都是 BaseException 的⼦类,⽽我们⼀般讲的异常处理是 Exception 下⾯的⼦类。
接下来我们就来看看常见的错误类型(下表粉⾊)。
BaseException+-- SystemExit+-- KeyboardInterrupt+-- GeneratorExit+-- Exception+-- StopIteration
File "", line 1
print('函数最后没有⼩括号'
^
SyntaxError: unexpected EOF while parsing
IndentationError
作为 SyntaxError 的⼦类,当缩进有问题时报错。
if True:print('缩进有问题')
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
i = iter([1,2,3])i
0x25af5c859e8>
⽐如忘记打反括号 - SyntaxError
(
File "", line 1
TypeError(对不同类型操作⽆效)
AttributeError(调⽤对象中不存在的属性)


发布评论