首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python学习笔记(八)——错误、调试、测试

ZeroDivisionError as e: print('except:', e) finally: print('finally...') print('END') 当我们认为某些代码可能会出错...BaseException类派生的,常见的错误类型和继承关系看这里: https://docs.python.org/3/library/exceptions.html#exception-hierarchy 使用...抛出错误 只有在必要的时候才定义我们自己的错误类型。如果可以选择Python已有的内置的错误类型(比如ValueError,TypeError),尽量使用Python内置的错误类型。...: pass def foo(s): n = int(s) if n==0: raise FooError('invalid value: %s' % s)...断言会抛出KeyError: with self.assertRaises(KeyError): value = d['empty'] 运行单元测试 一旦编写好单元测试,我们就可以运行单元测试。

75920

Day13错误、调试和测试

END 当我们认为某些代码可能会出错,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块...END Python的错误其实也是class,所有的错误类型都继承自BaseException,所以在使用except需要注意的是,它不但捕获该类型的错误,还把其子类也“一网打尽”。...3 4 def bar(s): ----> 5 return foo(s) * 2 #原因是return foo(s) * 2这个语句出错了,但这还不是最终原因,继续往下看:...10 / int(s) #原因是return 10 / int(s)这个语句出错了,这是错误产生的源头, 3 4 def bar(s): 5 return...---- pdb.set_trace() 调试 import pdb,然后,在可能出错的地方放一个pdb.set_trace(),就可以设置一个断点: import pdb s = '0' n =

80590
您找到你想要的搜索结果了吗?
是的
没有找到

调用企业微信API发送文本,图片,文件消息

(已在企业微信的通讯录中添加,添加后微信后台会自动分配标识),多个用户使用 “|” 隔开(如”zhdb|zhj|wqq”),所有人(“@all”); (2) corp_id–>str,企业ID,申请企业微信获得...; (3) secret, agent_id–>str, 创建企业应用时获得. 3.本实例定义了三种消息格式的发送(text, image, file), 使用实例如下: chat = CorpWechat...= json.loads(r.text) try: return js['access_token'] except KeyError: # 成功返回后就会获得'access_token'字段,否则报错...= r.json() try: return js['media_id'] except KeyError: # 成功返回后就会获得'media_id'字段,否则报错KeyError raise KeyError...base_string = '''{ "touser": self.touser, "msgtype": msg_type, "agentid": self.agent_id, msg_type: {'%s'

3.2K10

异常处理(第十一章)内有福利

(most recent call last): File "", line 1, in TypeError: unsupported operand type(s)...文件出错了,原因是unsupported operand type(s) for +: 'int' and 'str' >>> else语句(补充) 与if搭配的条件判断(要么怎样,要么不怎样) if...assert语句失败 AttributeError 特性应用或赋值引发(试图访问一个对象没有的属性) IOError 试图打开不存在的文件或者无全新的文件等操作...,就会引发(输入输入异常,基本是无法打开文件) ImportError 无法引入模块或包,基本是路径问题 IndexError 在使用系列中不存在的索引引发(...使用一个未被赋予对象的变量 SyntaxError Python代码逻辑语法出错不能执行 TypeError 传入的对象类型与要求不符 UnboundLocalError

48820

一图流:Python所有内置异常

在编写程序时,可能会经常报出一些异常,很大一方面原因是自己的疏忽大意导致程序给出错误信息,另一方面是因为有些异常是程序运行时不可避免的,比如在爬虫可能有几个网页的结构不一致,这时两种结构的网页用同一套代码就会出错...1、SyntaxError SyntaxError主要是Python语法发生了错误,比如少个冒号、多个引号之类的,编程稍微疏忽大意一下就会出错,应该是最常见的一种异常错误了。...call last) in ----> 1 a-b TypeError: unsupported operand type(s)...KeyError是关键字错误,这个异常主要发生在字典中,比如当用户试图访问一个字典中不存在的键时会被引发。...思维导图下载: https://pan.baidu.com/s/1X4NIoRec1umU6Dhh9GobQQ 提取码:tcwy 官方文档: https://docs.python.org/3/library

90830

腾讯大佬整理了 Python 所有内置异常,Python高手必备的排错手册

在编写程序时,可能会经常报出一些异常,很大一方面原因是自己的疏忽大意导致程序给出错误信息,另一方面是因为有些异常是程序运行时不可避免的,比如:在爬虫可能有几个网页的结构不一致,这时两种结构的网页用同一套代码就会出错...1、SyntaxError SyntaxError 主要是 Python 语法发生了错误,比如少个冒号、多个引号之类的,编程稍微疏忽大意一下就会出错,应该是最常见的一种异常错误了 In [1]: While...call last) in ----> 1 a-b TypeError: unsupported operand type(s)...KeyError 是关键字错误,这个异常主要发生在字典中,比如当用户试图访问一个字典中不存在的键时会被引发 In [18]: dict_ = {'1':'yi','2':'er'} In [19]:...Traceback (most recent call last) in ----> 1 dict_['3'] KeyError

99630

Python学习笔记(八)·错误、调试和测试

比如打开文件的函数open(),成功返回文件描述符(就是一个整数),出错返回-1。...or modulo by zero 根据错误类型ZeroDivisionError,我们判断,int(s)本身并没有出错,但是int(s)返回0,在计算10 / 0出错,至此,找到错误源头。...出错,会分析错误信息并定位错误发生的代码位置才是最关键的。 程序也可以主动抛出错误,让调用者来处理相应的错误。但是,应该在文档中写清楚可能会抛出哪些错误,以及错误产生的原因。...有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。...断言会抛出KeyError: with self.assertRaises(KeyError): value = d['empty'] 而通过d.empty访问不存在的key,我们期待抛出AttributeError

1.2K30

干!一张图整理了 Python 所有内置异常

在编写程序时,可能会经常报出一些异常,很大一方面原因是自己的疏忽大意导致程序给出错误信息,另一方面是因为有些异常是程序运行时不可避免的,比如在爬虫可能有几个网页的结构不一致,这时两种结构的网页用同一套代码就会出错...Python有很多的内置异常,也就是说Python开发者提前考虑到了用户编程过程中可能会出现这类错误,所以制造了这些内置异常可以快速准确向用户反馈出错信息帮助找出代码中的bug。...1、SyntaxError SyntaxError主要是Python语法发生了错误,比如少个冒号、多个引号之类的,编程稍微疏忽大意一下就会出错,应该是最常见的一种异常错误了。...call last) in ----> 1 a-b TypeError: unsupported operand type(s)...KeyError是关键字错误,这个异常主要发生在字典中,比如当用户试图访问一个字典中不存在的键时会被引发。

94430

python高阶教程-上下文管理器

) print("Test 3, key error") with my_context(3) as ins: print("ins' num is", ins.num) raise(KeyError...) KeyError 可以看到,如果在执行with代码块的时候发生了异常,可以在__exit__()方法中进行处理。...使用生成器实现上下文管理器 如果我们只是为一个简单的函数进行上下文管理,那么定义一个类略有些麻烦。好在我们还有标准库可以使用,这个标准库是contextlib。下面是一个简单的应用例子。...在生成器实现的上下文管理器中进行异常处理 使用类的方法进行上下文管理,异常是作为参数传递的,那使用生成器进行上下文管理应该怎样做呢?...It's value error 我们在try..except语句中对RuntimeError进行了处理,所以代码可以继续执行;没有对ValueError处理,所以异常继续向上抛,直到控制台输出错误信息

39220
领券