第九周

本文介绍了Python中的异常处理机制,包括异常的概念、常见异常类型、如何使用try-except语句捕获和处理异常,以及如何手动触发异常。此外,还详细讲解了Python正则表达式的使用方法,包括元字符、常用函数如match、compile、findall等。

学习笔记(10)

第十三章 异常

异常概念:在生活中,使用计算机的某个应用软件时,由于某种错误,可能会引发异常,如图:
在这里插入图片描述
在程序中,当python检测到一个错误时,解释器就会指出当前流程已无法继续执行下去,这时就出现了异常。例如,使用print()函数输出一个未定义的变量值,具体如下所示:

print(name)

在python程序中,如果出现异常,而异常对象并未被捕获或处理:程序就会用自动回溯,返回一种错误信息,并终止执行,上述语句返回的错误信息如下:

Traceback(most recent call last):
  File"D:1000phone/test.py",line 1, in <module>
   print(name)
NameError:name'name'is not defined

异常类
python为了区分不同的异常,其中内置了许多异常类,常见的异常类如表所示:
在这里插入图片描述
在这里插入图片描述
在表中,BaseException是异类的顶级类,但用户定义的类不能直接继承这个类,而是要继承Exception。Exception类是与应用相关异常的顶层基类,除了系统退出事件类(systemexit,keyboardlnterrupt和generatorexit)之外,几乎所有用户定义的类都应该继承自这个类,而不是baserxception类。
捕获与处理异常
try-except语句
try-except语句可以捕获异常并处理,其语法格式如下:

try#可能出现异常的语句
except 异常类名:
  #处理异常语句

当try语句块中某条语句出现异常时,程序就不在执行try语句块中后面的语句,而是直接执行except语句块,如图所示。

try:
  a=floatinput'请输入被除数:'))
  b=floatinput'请输入除数:'))
  print(a,'/',b,'结果为',a/b)
  print('运算结束')
except zerodivisionerror:
  print'除数不能为0'print'程序结束'

触发异常
raise语句
触发异常有两种情况:一种是程序执行中因为错误自动触发异常,另一种是显示地使用raise或assert语句手动触发异常。python捕获与处理这两种异常的方式是相同的。
raise语句可以手动触发异常,其使用方法有如下3种。
1.通过类名触发异常
该方法只需要指明异常类便可创建异常类的实例对象并触发异常,其语法格式如下;

raise 异常类名

例如,手动触发语法错误异常,则可以使用以下语句:

raise syntaxerror

程序运行,输出以下信息

Traceback(most recent call last):
  File"D:/1000phone/test.py",line,in <module>
   raise syntaxerror
syntaxerror:None

assert语句
assert语句(又称断言)是有条件的触发异常,其语法格式如下:

assert 表达式[,参数]

第十四章 python正则表达式

正则表达式是字符串处理的有力工具,比字符串自身提供的方法提供了更强大的处理功能。正则表达式,又称正规表达式、正规表示法、正规表达式、规则表达式、常规表示法,计算机科学的一个概念。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
正则表达式有元字符及其不同组合来构成,通过巧妙地构造正则表达式可以匹配任意字符串,并完成查找、替换、分隔等复杂的字符串处理任务。
元字符:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
re模块
re.match函数
re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()返回None。
re.match(pattern,string,flags=0)
在这里插入图片描述
re.match函数
flags
在这里插入图片描述
匹配成功的re.match方法返回一个匹配的对象,使用group(num)或groups()匹配对象函数来获取匹配表达式。
在这里插入图片描述
在这里插入图片描述
compile函数
compile函数用于编译正则表达式,生成一个正则表达式(pattern)对象,供match()和search()这两个函数使用。
re.compile(pattern[,flags])
在这里插入图片描述
findall
在字符串找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
在这里插入图片描述
re.finditer
在字符串找到正在则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
re.finditer(pattern,string ,flags=0)
在这里插入图片描述
re.split
spit方法按照能够匹配的子串将字符串分割后返回列表,它的使用形式如下:
re.split(pattern,string[,maxsplit=0,flags=0])
在这里插入图片描述
re.sub
sub(pattern,repl,string,count=0,flags=0)
替换函数,将正则表达式pattern匹配到的字符串替换为repl指定的字符串,参数count用于指定最大替换次数。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值