zoukankan      html  css  js  c++  java
  • python五种调试或排错的方法

    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代码片段,如下:  
    1 import pdb
    2 
    3 if __name__ == "__main__":
    4  a = 1
    5  pdb.set_trace() #创建pdb代码片段
    6  b = 2
    7  c = a + b
    8  print(c)

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

        


     
    4、日志,定位问题记录程序运行情况
      主要是引入logging库
      logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分为  debug(), info(), warning(), error() and critical()5个级别,根据需要选择不同的级别打印日志

     
    5、IDE Debuger 图形界面便于数据查看,支持多线程调试,远程调试
      主要是IDE中自带的debug调试
      设置断点,运行时以debug模式运行,或这shift+F9运行
  • 相关阅读:
    POJ 1659 Frogs' Neighborhood
    zoj 2913 Bus Pass(BFS)
    ZOJ 1008 Gnome Tetravex(DFS)
    POJ 1562 Oil Deposits (DFS)
    zoj 2165 Red and Black (DFs)poj 1979
    hdu 3954 Level up
    sgu 249 Matrix
    hdu 4417 Super Mario
    SPOJ (BNUOJ) LCM Sum
    hdu 2665 Kth number 划分树
  • 原文地址:https://www.cnblogs.com/tynam/p/9098630.html
Copyright © 2011-2022 走看看