1、print,直接打印,比较简单而且粗暴
  在代码中直接输入print+需要输出的结果,根据打印的内容判断即可
 
2、assert断言,很方便,测试人员常常在写自动化用例的时候用的比较多
  如下,直接将预期结果和实际结果做判断 
      def true_code():
    x = 3
    y = 2
    z = x + y
    assert(5==z), "z不等于5"

def false_code():
    x = 3
    y = 3
    z = x + y
    assert(5==z), "z不等于5"

true_code()
false_code()

  运行结果如下:

  

 
 
3、pdb交互式源代码调试
  常用命令:break或b  设置断点
       continue或c  继续执行程序,或跳到下个断点
       list或l  查看当前行的代码段
       step或s  进入函数
       return或r  执行代码知道从当前函数返回
       exit或q  中止并退出
       next或n  执行下一行
       p或!   打印变量的值例如a为变量,则输入p a
       help或h   帮助
  在使用pdb时需要导入pdb库,然后在代码中需要的地方引入pdb代码片段,如下:  
 import pdb

 if __name__ == "__main__":
  a = 1
  pdb.set_trace() #创建pdb代码片段
  b = 2
  c = a + b
  print(c)

  输入pdb命令,并且查看结果:

    

 
4、日志,定位问题记录程序运行情况
  主要是引入logging库
  logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分为 

debug(), info(), warning(), error() and critical()
5个级别,根据需要选择不同的级别打印日志
 
5、IDE Debuger 图形界面便于数据查看,支持多线程调试,远程调试
  主要是IDE中自带的debug调试
  设置断点,运行时以debug模式运行,或这shift+F9运行

python五种调试或排错的方法的更多相关文章

  1. 五种WordPress防止垃圾评论方法-过滤垃圾评论提高WP运行效率

    WordPress貌似和垃圾评论是一对“孪生兄弟”,无论在国内还是国外的空间主机上搭建的Wordpress博客,无论Wordpress有多少流量多么低的权重,垃圾评论都会自动找上门来,假如有好几天没有 ...

  2. 五种ip proxy的设置方法

    我们在制作爬虫爬取想要的资料时,由于是计算机自动抓取,强度大.速度快,通常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,在这里介绍相关的技巧,以免被封:但在制作爬虫时,还 ...

  3. es6五种遍历对象属性的方法 - 表格整理

    ES6 一共有5种方法可以遍历对象的属性. (1)for...in for...in循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性). (2)Object.keys(obj) Obje ...

  4. python几种常见的模块安装方法

    1. 在线安装 1.1 在命令提示符中运行 pip install package_name 指令  注:具体前置步骤和教程:http://www.cnblogs.com/jfl-xx/p/72895 ...

  5. Python python 五种数据类型--列表

    # 列表的定义 var1 = [] var2 = list() print(type(var1)) #<class 'list'> print(type(var2)) #<class ...

  6. Python python 五种数据类型--字符串

    # python 字符串的初始化 var1 = 'hello,world' # python 字符串为不可变类型 var2= var1* 2 print(var1) #hello,world prin ...

  7. 五种JSP页面跳转方法详解

    1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个 ...

  8. Python python 五种数据类型--元组

    # 定义一个元组 var1 = ('Hello','Python') var2 = tuple() print(type(var1)) #<class 'tuple'> print(typ ...

  9. Python python 五种数据类型--字典

    # 定义一个字典 var1 = {'a':20,'b':40}; var2 = dict(); print(type(var1)) print(type(var2)) # 长度 length = le ...

随机推荐

  1. Java并发编程——BlockingQueue

    简介 BlockingQueue很好的解决了多线程中,如何高效安全"传输"数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利. 阻塞队列是 ...

  2. Mysql研磨之InnoDB行锁模式

    事务并发带来的一些问题 (1)更新丢失(LostUpdate):当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,由于每个事务都不知道其他事务的存在,就会发生丢失更新问题最后的更新覆盖了由其 ...

  3. PHP代码审计

    Preface 这篇文章的内容会不断的充实和丰富,前期会增加一些之前爆出漏洞的复现过程,来丰富自己实际代码审计经验,后期如果能挖掘出新的漏洞,便更好. 代码审计之SQL注入:BlueCMSv1.6 s ...

  4. php数据导出excel

    /** * 导出数据为excel表格 *@param $data 一个二维数组,结构如同从数据库查出来的数组 *@param $title excel的第一行标题,一个数组,如果为空则没有标题 *@p ...

  5. 谈谈书本《c#物联网程序设计基础》中的技术瑕疵,如果你将要读本书,请进来看看!

    今天去书店看到一本名为<c#物联网程序设计基础>的书,对物联网感兴趣的我抓起来就看,书中的项目都是上位机开发项目,较简单,如果物联网开发只是这样,看起来我做物联网开发也是绰绰有余.这边书我 ...

  6. Linux环境安装配置JDK

    本文安装环境为Ubuntu14 64位,jdk版本为jdk1.6.0_38,安装文件名为jdk-6u38-linux-x64.bin(根据系统不同,下载不同的安装文件) 下载地址:http://www ...

  7. .NET开发设计模式-模板模式

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. 第二章之S5PV210在BL1中点亮LED灯

    1,u-boot中第一个入口在./arch/arm/cpu/armv7/start.S 翻到153行:如下图 前面都是进行一些基本设置,不用管. cpu_init_cp15设置协处理器, cpu_in ...

  9. 一张图搞定OAuth2.0

    1.引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常简单的一件事情,网上一堆神乎其神的讲解,让我不得不写一篇文章来终结它们. 一项新的技术,无非就是了解它是什么,为什 ...

  10. Java 标准 I/O 介绍

    一.Java标准I/O知识体系图: 二.I/O是什么 I/O 是Input/Output(输入.输出)的简称,输入流可以理解为向内存输入,输出流是从内存输出. 三.Java I/O 用途与对应的流一览 ...