第二周笔记(2)

异常 

异常指程序运行过程中出现的非正常现象,例如用户输入错误,除数为0,需要处理的文件不存在,数组下标越界等

异常处理就是指程序在出现问题时依然可以正确的执行剩余的程序,而不会因为异常而终止执行

python中引进了很多描述和处理异常的类,称为异常类。异常类定义中包含了该类异常的信息和对异常进行处理的方法。下面较为完整的展示了python中内建异常类的继承层次

异常也采用对象的方式来处理。处理过程

1.抛出异常:在执行方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给解释器

2.捕获异常:解释器得到该异常后,寻找相应的代码来处理该异常

try…一个except结构

try:

        被监控的可能引发异常的语句块

except BaseException  as e:

       异常处理语句块

若try没有异常,except不执行,若try异常,则异常后的语句不执行,直接跳到excep

try…多个except结构

try:

        被监控的可能引发异常的语句块

except Exception1:

        处理的语句块

except Exception2:

        处理的语句块

except BaseException:

        处理可能漏掉的异常的语句块

try…except…else结构

try有异常,执行except,没有则执行else

try…except…finall结构

finall块无论是否发生异常都会被执行,通常用来释放try块中申请的资源

常见异常的解决

SyntaxError:语法错误

NameError:尝试访问一个没有 申明的变量

ZeroDivisionError:除数为0错误

ValueError:数值错误

TypeError:类型错误

AttributeError:访问对象的不存在属性

IndexError:索引越界异常

KeyError:字典的关键字不存在

常见异常汇总

 

 with上下文管理器

with context_expr [as var]

        语句块

with上下文可以自动管理资源,在with代码块执行完毕后自动还原进入该代码之前的现场或上下文,无论何种原因跳出with块,无论是否有异常,总能保证资源正常是否。极大简化了工作,在文件操作,网络通信相关的场合非常常用,但不是取代tryexceptfinall

traceback模块

 自定义异常类

文件:
文本文件:

文本文件存储的是普通字符文本,默认为Unicode字符集,可以使用记事本程序打开,但是,像word软件编辑的文档不是文本文件

二进制文件:

二进制文件把数据内容用字节进行存储,无法用记事本打开。必须使用专用的软件解码,如MP4视频文件,MP3音频文件,jpg图片,doc文档

文件操作相关模块概述

 创建文件对象open()

open(文件名【,打开方式】

f=open(r"d:\b.txt","a")

 如果没有增加模式“b”,则默认创建的是文本对象,处理的基本单元是字符,如果有,则是二进制文件对象,处理的基本单元是字节

文本文件的写入

基本的文件写入操作

1.创建文件对象

2.写入数据

3.关闭文件对象

为了确保打开的文件对象正常关闭,一般结合异常机制的finally或者with关键字实现

 with关键字可以在代码块执行完毕后自动还原进入该代码块时的现场

中文乱码问题

windows操作系统默认的编码是GBK,Linux操作系统默认的编码是UTF-8.用open是编码GBK

如果想用UTF-8,在后面加上encoding="utf-8"

write(a):把字符串a写入到文件中

writelines(b):把字符串列表写入文件中,不添加换行符

文本文件的读取

二进制文件的读取和写入

二进制文件的处理流程和文本文件流程一致,首先还是要创建文件对象,不过,我们需要指定二进制模式,从而创建二进制文件对象。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值