【Python进阶(二)】——程序调试方法

简介: 【Python进阶(二)】——程序调试方法

【Python进阶(二)】系列——程序调试方法,建议收藏!

该篇文章利用Python演示了程序调试方法,包括程序的基本调试方法里;错误信息显示方式;断言设置方法等内容。

1 程序调试基本方法

1.1 PDB调试

  运行程序:

#当python抛出异常或错误信息时,可以用PDB(The Python Debugger,Python调试器)进行程序调试
x=1
x1

  运行结果:

Traceback (most recent call last):
  File "<ipython-input-45-ff55524dcc80>", line 2, in <module>
    x1
NameError: name 'x1' is not defined

1.2 debug调试

  运行程序:

%debug  #打开PDB方法,退出PDB方法是输入q或quit
#除了PDB,常用的python调试器还有Pylint,Pycheaker

  运行结果:

<ipython-input-45-ff55524dcc80>(2)<module>()
      1 x=1
----> 2 x1
ipdb> x
1
ipdb> q

2 设置错误信息的显示方式

2.1 mode Plain

  运行程序:

%xmode Plain
y=1
Y

  运行结果:

Exception reporting mode: Plain
Traceback (most recent call last):
  File "<ipython-input-48-e9d491258c9c>", line 3, in <module>
    Y
NameError: name 'Y' is not defined

2.2 mode Verbose

  运行程序:

%xmode Verbose
y=1
Y

  运行结果:

Exception reporting mode: Verbose
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-49-4e5fe2f91061> in <module>
      1 get_ipython().run_line_magic('xmode', 'Verbose')
      2 y=1
----> 3 Y
        global Y = undefined
NameError: name 'Y' is not defined

2.3 debug

  运行程序:

%debug

  运行结果:

<ipython-input-49-4e5fe2f91061>(3)<module>()
      1 get_ipython().run_line_magic('xmode', 'Verbose')
      2 y=1
----> 3 Y
ipdb> x
1
ipdb> y
1
ipdb> q

3 设置断言的方法

  运行程序:

a=1
b=0
assert b!=0,"分母不能等于0"

  运行结果:

AssertionError                            Traceback (most recent call last)
<ipython-input-51-2b94eee22f18> in <module>
      1 a=1
      2 b=0
----> 3 assert b!=0,"分母不能等于0"
        global b = 0
AssertionError: 分母不能等于0

  运行程序:

%debug

  运行结果:

<ipython-input-51-2b94eee22f18>(3)<module>()
      1 a=1
      2 b=0
----> 3 assert b!=0,"分母不能等于0"
ipdb> a
ipdb> b
ipdb> a
ipdb> quuit
*** NameError: name 'quuit' is not defined
ipdb> quit


相关文章
|
20天前
|
测试技术 API Python
【10月更文挑战第1天】python知识点100篇系列(13)-几种方法让你的电脑一直在工作
【10月更文挑战第1天】 本文介绍了如何通过Python自动操作鼠标或键盘使电脑保持活跃状态,避免自动息屏。提供了三种方法:1) 使用PyAutoGUI,通过安装pip工具并执行`pip install pyautogui`安装,利用`moveRel()`方法定时移动鼠标;2) 使用Pymouse,通过`pip install pyuserinput`安装,采用`move()`方法移动鼠标绝对位置;3) 使用PyKeyboard,同样需安装pyuserinput,模拟键盘操作。文中推荐使用PyAutoGUI,因其功能丰富且文档详尽。
WK
|
6天前
|
Python
Python中format_map()方法
在Python中,`format_map()`方法用于使用字典格式化字符串。它接受一个字典作为参数,用字典中的键值对替换字符串中的占位符。此方法适用于从字典动态获取值的场景,尤其在处理大量替换值时更为清晰和方便。
WK
63 36
|
17天前
|
机器学习/深度学习 数据采集 数据挖掘
11种经典时间序列预测方法:理论、Python实现与应用
本文将总结11种经典的时间序列预测方法,并提供它们在Python中的实现示例。
55 2
11种经典时间序列预测方法:理论、Python实现与应用
|
2天前
|
机器学习/深度学习 算法 编译器
Python程序到计算图一键转化,详解清华开源深度学习编译器MagPy
【10月更文挑战第26天】MagPy是一款由清华大学研发的开源深度学习编译器,可将Python程序一键转化为计算图,简化模型构建和优化过程。它支持多种深度学习框架,具备自动化、灵活性、优化性能好和易于扩展等特点,适用于模型构建、迁移、部署及教学研究。尽管MagPy具有诸多优势,但在算子支持、优化策略等方面仍面临挑战。
8 3
|
4天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
10 3
|
7天前
|
存储 人工智能 数据挖掘
Python编程入门:构建你的第一个程序
【10月更文挑战第22天】编程,这个听起来高深莫测的词汇,实际上就像搭积木一样简单有趣。本文将带你走进Python的世界,用最浅显的语言和实例,让你轻松掌握编写第一个Python程序的方法。无论你是编程新手还是希望了解Python的爱好者,这篇文章都将是你的理想起点。让我们一起开始这段奇妙的编程之旅吧!
13 3
|
13天前
|
开发者 Python
Python中的魔法方法与运算符重载
在Python的奇妙世界里,魔法方法(Magic Methods)和运算符重载(Operator Overloading)是两个强大的特性,它们允许开发者以更自然、更直观的方式操作对象。本文将深入探讨这些概念,并通过实例展示如何利用它们来增强代码的可读性和表达力。
|
21天前
|
存储 开发者 Python
Python编程入门:构建你的第一个程序
【10月更文挑战第8天】本文旨在为初学者提供一个简单的Python编程入门指南。我们将从安装Python环境开始,逐步介绍如何编写、运行和理解一个简单的Python程序。文章将通过一个实际的代码示例来展示Python的基本语法和结构,帮助读者快速上手Python编程。
|
21天前
|
Linux Python
Python获得本机本地ip地址的方法
【10月更文挑战第8天】 socket模块包含了丰富的函数和方法,可以获取主机的ip地址,例如gethostbyname方法可以根据主机名获取ip地址,gethostbyname_ex方法可以获得本机所有ip地址列表,也可以使用netifaces模块获取网卡信息。
18 0
|
21天前
|
存储 程序员 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第8天】在数字时代的浪潮中,编程已成为一项基础技能。本文旨在引导初学者步入编程世界,通过Python语言的简洁与强大,轻松打造个人的第一个程序。我们将一起探索变量、数据类型、控制结构等概念,并通过实际代码示例,解锁编程的乐趣。无论你是编程新手还是希望了解Python的爱好者,这篇文章都将是你的理想起点。让我们开始吧,用代码书写你的数字梦想!