python3快速入门教程8错误和异常

Python 中(至少)有两种错误:语法错误(syntax errors)和异常(exceptions) 。
语法错误
语法错误又称作解析错误:
>>> while True print(&
异常
即使语句或表达式在语法上是正确的,执行时也可能会引发错误 。运行期检测到的错误称为异常
>>> 10 * (1/0)Traceback (most recent call last):File &
>>> while True:…try:…x = int(input(&
首先,执行try和except 之间的内容如果没有异常发生,忽略except语句 。如果在 try 子句执行过程中发生了异常,那么该子句其余的部分就会忽略 。如果异常匹配于 * 后面指定的异常类型,就执行对应的except子句 。然后继续执行try语句之后的代码 。如果发生了一个异常,在except 子句中没有与之匹配的分支,它就会传递到上一级try 语句中 。如果最终仍找不到对应的处理语句,它就成为未处理异常,终止程序运行,显示提示信息 。
try语句可能包含多个 except 子句,分别指定处理不同的异常 。至多执行一个分支 。异常处理程序只会处理对应的 try 子句中发生的异常,在同一try语句中 , 其他子句中发生的异常则不作处理 。except 子句可以在元组中列出多个异常的名字,例如:
… except (RuntimeError, TypeError, NameError):…pass
异常匹配如果except子句中的类相同的类或其基类(反之如果是其子类则不行) 。例如,以下代码将按此顺序打印B,C,D:
class B(Exception):passclass C(B):passclass D(C):passfor cls in [B, C, D]:try:raise cls()except D:print(&
import systry:f = open(&
for arg in sys.argv[1:]:try:f = open(arg, &
发生异常时,可能会有相关值,作为异常的参数存在 。这个参数是否存在、是什么类型 , 依赖于异常的类型 。
在异常名(元组)之后,也可以为 except 子句指定一个变量 。这个变量绑定于异常实例,它存储在instance.args参数中 。为了方便起见,异常实例定义了 str(),这样就可以直接访问过打印参数而不必引用.args 。也可以在引发异常之前初始化异常,并根据需要向其添加属性 。
>>> try:…raise Exception(&
异常处理器不仅仅处理那些在 try 子句中立刻发生的异常,也会处理那些 try 子句中调用的函数内部发生的异常 。例如:
>>> try:…raise Exception(&
>>> raise NameError(&
raise ValueError
>>> try:…raise NameError(&
异常类中可以定义任何其它类中可以定义的东西,但是通常为了保持简单,只在其中加入几个属性信息,以供异常处理句柄提取 。如果新创建的模块中需要抛出几种不同的错误时 , 通常的作法是为该模块定义异常基类,然后针对不同的错误类型派生出对应的异常子类:
class Error(Exception):&
很多标准模块中都定义了自己的异常,以报告在他们所定义的函数中可能发生的错误 。关于类的进一步信息请参见Classes 。
定义清理行为
try 语句有可选的子句定义在任何情况下都一定要执行的清理操作 。例如:
>>> try:…raise KeyboardInterrupt… finally:…print(&
>>> def divide(x, y):…try:…result = x / y…except ZeroDivisionError:…print(&
预定义清理行为
有些对象定义了标准的清理行为,无论对象操作是否成功,不再需要该对象的时候就会起作用 。以下示例尝试打开文件并把内容输出到屏幕 。
for line in open(&
with open(&
异常处理实例: 正则表达式及拼音排序
有某群的某段聊天记录
现在要求输出排序的qq名 , 结果类似如下:
[…, &
参考资料:python文本处理库
参考代码:
1,把qq群的聊天记录导出为txt格式,重命名为test.txt
2, 执行:
$ python3 qq.py ['Sally', '^^O^^', 'aa催乳师', 'bling', '本草隐士', '纯中药治疗阳痿早泄', '长夜无荒', '东方~慈航', '干金草', '广东-曾超庆', '红梅* 渝', 'jerryyu', '可怜的樱桃树', '叻风云', '欧阳-深圳白芒', '勝昔堂~元亨', '蜀中~眉豆 。', '陕西渭南逸清阁*无为', '吴宁……任', '系统消息', '于立伟', '倚窗望岳', '烟霞霭霭', '燕子', '张强', '滋味', '?买个罐头 吃西餐', '【大侠】好好', '【大侠】面向大海~纯中药治烫伤', '【宗师】吴宁……任', '【宗师】红梅* 渝', '【少侠】焚琴煮鹤', '【少侠】笨笨', '【掌门】溆浦?山野人家']
【python3快速入门教程8错误和异常】以上就是朝夕生活(www.30zx.com)关于“python3快速入门教程8错误和异常”的详细内容,希望对大家有所帮助!

猜你喜欢