IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python入坑进阶第四步:python调试 -> 正文阅读

[Python知识库]python入坑进阶第四步:python调试

1、抛出异常__使用raise语句

格式:

? raise Exception(‘自定义的出错信息’)

实例:

def print5(number):
    if number != 5:
        raise Exception('请输入数字5!')
try:
     print5(6)
except Exception as err:
    print('报错信息为:'+str(err))

结果如下:

在这里插入图片描述

2、通过反向跟踪

(1)反向跟踪的含义:

python遇到错误,就会生成一些错误信息,称为“反向跟踪”。

“反向跟踪”包含了出错信息,导致错误的代码行号,以及导致该错误的函数调用的序列(调用栈)。

(2)实例

def print5(number):
    if number != 5:
        raise Exception('请输入数字5!')
print5(6)

结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8VF5RB4H-1643286916535)(C:\Users\17216\AppData\Roaming\Typora\typora-user-images\image-20220124220246587.png)]

(3)将反向跟踪信息报错至文本文件___traceback模块

>>> import traceback
>>> try:
	raise Exception('报错信息')
except:
	file=open('D:\\python\\error.txt','w')
	file.write(traceback.format_exc())
	file.close()
	print('错误信息已写入文件路径:D:\python\error.txt')

__________________________运行结果____________________________	
93            #93表示写入文件字符的个数
错误信息已写入文件路径:D:\python\error.txt
>>> 

文件结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fsLCDCBX-1643286916537)(C:\Users\17216\AppData\Roaming\Typora\typora-user-images\image-20220124220945734.png)]

3、断言 :assert

含义:

assert(断言)用于判断一个表达式,在表达式条件为false的时候触发异常。断言可以在不满足程序运行的情况下直接返回错误,而不必等待程序运行出现崩溃的情况。

使用断言举例:

>>> assert 1==3 ,'这里正确的格式应该是1==1'
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    assert 1==3 ,'这里正确的格式应该是1==1'
AssertionError: 这里正确的格式应该是1==1
>>> 

禁用断言:

禁用python 程序中的assert语句可以稍微提高性能;

从终端窗口运行Python时,在.py文件之前加上“-O” 即可跳过断言检查

举例如下:

assert.py代码:

a =10
b=11
assert a==b ,'a和b都应该是10'
print(a)
print(b)

运行截图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SIrCOzeV-1643286916539)(C:\Users\17216\AppData\Roaming\Typora\typora-user-images\image-20220126211612261.png)]

4、日志 logging

使用日志的好处:

可以理解程序中发生的事,以及事情发生的顺序。

日志消息可以描述程序何时到达日志函数的调用,并列出所指定变量当时的值。

另一方面:缺失日志信息表明有一部分代码被跳过,从未执行。

1)日志的级别

级别日志函数描述
DEBUGlogging.debug()最低级别。用于小细节。通常只有在诊断问题时,你才会关心这些消息。
INFOlogging.info()用于记录程序中一般事件的信息,或确认一切工作正常
WARNINGlogging.warning()用于表示可能的问题,它不会阻止册程序工作,但将来可能会。
ERRORlogging.error()用于记录错误,它导致程序做某事失败
CRITICALlogging.critical()最高级别,用于表示致命错误,它导致或将要导致程序完全停止工作。

设置日志级别使用:logging.getLogger().setLevel(参数);

如果参数为:logging.DEBUG,则可以显示所有的日志级别消息(DEBUG是最低级别)python3 默认级别为logging.WARNING,设置日志级别之后,低于此日志级别的日志消息不显示。

举例如下:

>>> import logging
>>> logging.debug('debug')
>>> logging.info('info')
>>> logging.warning('warning')
WARNING:root:warning
>>> logging.error('error')
ERROR:root:error
>>> logging.critical('critical')
CRITICAL:root:critical
>>> #设置日志级别
>>> logging.getLogger().setLevel(logging.DEBUG)
>>> logging.debug('debug')
DEBUG:root:debug
>>> 

2)禁用日志 :loggin.disable(参数)

>>> import logging
>>> #设置日志级别
>>>logging.getLogger().setLevel(logging.DEBUG)
>>> logging.debug('debug')
DEBUG:root:debug
>>> #禁用DEBUG及其以下低级别的日志消息
>>> logging.disable(logging.DEBUG)
>>> logging.debug('1234')
>>> logging.info('123')
INFO:root:123
>>> #禁用ERROR及其以下低级别的日志消息
>>> logging.disable(logging.ERROR)
>>> logging.debug('debug')
>>> logging.info('info')
>>> logging.warning('warning')
>>> logging.error('error')
>>> logging.critical('critical')
CRITICAL:root:critical
>>> #禁用所有日志消息
>>> logging.disable(logging.CRITICAL)
>>> logging.debug('debug')
>>> logging.info('info')
>>> logging.warning('warning')
>>> logging.error('error')
>>> logging.critical('critical')
>>> 

3)将日志记录到文件 :logging.basicConfig(参数,[参数],[参数])

①:默认日志级别
>>> import logging
>>> logging.basicConfig(filename='D:\\python\\mylog.txt')
>>> logging.debug('debug')
>>> logging.info('info')
>>> logging.warning('warning')
>>> logging.error('error')
>>> logging.critical('critical')

在这里插入图片描述

②:设置记录到文件的目录级别

>>> import logging
>>> logging.basicConfig(filename='D:\\python\\mylog1.txt',level=logging.DEBUG)
>>> logging.debug('debug')
>>> logging.info('info')
>>> logging.warning('warning')
>>> logging.error('error')
>>> logging.critical('critical')
>>> 

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 11:52:10  更:2022-01-28 11:53:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:41:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码