1. 程式人生 > >Python基礎-除錯print()-assert-logging-pdb-ide

Python基礎-除錯print()-assert-logging-pdb-ide

列印日誌 print()

print()把可能有問題的變數打印出來,簡單又粗暴。

斷言 assert

凡是用print()來輔助檢視的地方,都可以用斷言(assert)來替代。

示例

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 斷言

def fun():
    n = int(input())
    # 表示式n != 0應該是True,否則,根據程式執行的邏輯,後面的程式碼肯定會出錯
    assert n != 0, "n is zero"
    print ("you input is ", n)


# 執行方法
def
runTest():
fun() # 執行 runTest()

假如輸入 0,會收穫下面的報錯

表示式n != 0應該是True,否則,根據程式執行的邏輯,後面的程式碼肯定會出錯

D:\PythonProject>python main.py
0
Traceback (most recent call last):
  File "main.py", line 16, in <module>
    runTest()
  File "main.py", line 13, in runTest
    fun()
  File "main.py", line 7
, in fun assert n != 0, "n is zero" AssertionError: n is zero

logging

把print()替換為logging是第3種方式,和assert比,logging不會丟擲錯誤,而且可以輸出到檔案.

這個方法,吊吊的,終於有點興趣了

示例

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# logging

import logging
# 這裡可以指定日誌級別debug,info,warning,error等幾個級別
logging.basicConfig(level=logging.INFO)

logging.info("Hello world"
) logging.info(10 / 0)

執行結果


D:\PythonProject>python main.py
INFO:root:Hello world
Traceback (most recent call last):
  File "main.py", line 9, in <module>
    logging.info(10 / 0)
ZeroDivisionError: division by zero

單步執行 pdb

啟動Python的偵錯程式pdb,讓程式以單步方式執行,可以隨時檢視執行狀態。

命令

python -m pdb xxx.py

命令 n 進入下一行

最好使用IDE工具除錯方便一些

IDE

如果要比較爽地設定斷點、單步執行,就需要一個支援除錯功能的IDE。目前比較好的Python IDE有:
Visual Studio Code:https://code.visualstudio.com/,需要安裝Python外掛。
PyCharm:http://www.jetbrains.com/pycharm/
另外,Eclipse加上pydev外掛也可以除錯Python程式。

相關推薦

Python基礎-除錯print()-assert-logging-pdb-ide

列印日誌 print() print()把可能有問題的變數打印出來,簡單又粗暴。 斷言 assert 凡是用print()來輔助檢視的地方,都可以用斷言(assert)來替代。 示例 #!/usr/bin/env python3 # -*- c

python 調試: print / assert / logging / pdb

max-width 怎麽 sse variant 調試方法 oot sys pri temp 先舉例最為常見的調試方法是:print用logging代替print, 可將信息輸出到文件中,但我還不懂是哪個文件,怎麽找。。。。logging.info()可以輸出一段文本a.i

python基礎學習日誌day5---logging模塊

取值 ive expect wid order out 程序 正常的 pen 很多程序都有記錄日誌的需求,並且日誌中包含的信息即有正常的程序訪問日誌,還可能有錯誤、警告等信息輸出,python的logging模塊提供了標準的日誌接口,你可以通過它存儲各種格式的日誌,logg

python基礎之“Print

效果 bsp world you 覆蓋 inpu span pan 實現 1、python怎麽在控制臺實現換行效果? 加個"\n”就是回車的意思 print (“hello \n Word”) 2、python中等號是賦值的意思 a = "一桶水” print(a) a

Python基礎模塊:logging模塊

.info stream 沒有 test https 打印 多個 stdout formatter 功能:格式化輸出日誌五個級別DEBUG,INFO,WARING,ERROR,CRITICAL,默認打印WARING以上級別輸入,可更改。默認實例是root,建議使用時不要使用

python簡單學------------python基礎print,input,if判斷等

首先請看下面的程式: 1. 註釋 #單行註釋,#右邊的部分不會被執行,只是用來說明 #列印一句話skjfksjdlfjalksdjfl #ajsdflajlsdfjshdfjsjdfh ''' 這是多行註釋,可以完成多個資訊的記錄 kasjdlfjalsdjflas asdfjalsdjfa as

python基礎----variale if..else input print

span padding authent time ces enca func style 默認 #!/usr/bin/python3 #使用哪個python解釋器運行該腳本 #python3默認編碼為unicode,支持中文 name = ‘侯亮平‘ pr

Python基礎-logging模塊

路徑 日誌級別 .get 一個 style 自定義 表示 級別 pro 日誌的級別 import logging logging.debug(‘debug message‘) logging.info(‘info message‘) logging.warning(‘wa

Python錯誤調試-raise、assertpdb

最大 ^c tro 處理 ror oserror iteration unbound 數據 raise: raise語句手工引發一個異常:,這樣做程序不會因異常而終止,而是運行報錯 1 "raise" [expression ["," expression ["," ex

Python基礎第十三天——sys模塊、logging模塊、json模塊、pickle模塊

ror 輸入 users end iam 退出 round color close 一、sys模塊 1、定義: 與python解釋器交互的一個模塊 2、sys模塊常用的方法 (1)sys.argv方法 定義:命令行參數list,第一個元素是程序本身路徑 例: import

Python基礎語法 - logging

記錄日誌 警告 style time form span 用法 test warning 描述:   很多程序都有記錄日誌的需求,並且日誌中包含的信息即有正常的程序訪問日誌,還可能有錯誤、警告等信息輸出,python的logging模塊提供了標準的日誌接口,你可以通過它存儲

python---基礎知識回顧(四)(模塊sys,os,random,hashlib,re,json,xml,shutil,configparser,logging,datetime,time,集合,堆,雙端隊列,其他)

ID 正常 空值 字符 預測 platform OS normal 生成 前提:dir,__all__,help,__doc__,__file__ dir:可以用來查看模塊中的所有特性(函數,類,變量等) >>> import copy >>

python基礎logging

formatter 文件處理 utf 基礎 turn bsp warning pri 處理器 import logging def logger(): logger = logging.getLogger(‘logger‘)#括號裏面默認是root l

Python基礎-----logging模塊

用戶 otl 同時 記錄 reat 前綴 set 生成 忽略 #!/usr/bin/env python#-*- coding:utf-8 -*-################################################################

Python 基礎 一張圖告訴你PyCharm如何進行斷點除錯

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

python程式碼除錯工具~pdb

新增斷點 指定函式:b func_name指定行號:b line_num指定斷點編號處發生中斷的條件:condition 2 a==7表示在斷點2處出現a==7時,產生中斷 刪除斷點 刪除斷點只能根據編號進行刪除,如刪除1號斷點:cl 1 檢視斷點 b 執行程式碼 單步跟蹤,不進入函式:n單步跟

Python基礎--print函式用法解釋

注意:以下程式碼均針對python3.x ,python2.x 需要把括號去掉 ,如:print ''This is the python 2. x format '' 1.print([object, ..., ]*, sep=' ', end='\n', 

python 基礎logging模組自定義封裝,同時輸出到本地資料夾以及python控制檯

# coding=utf-8 import logging import os import time import logging.handlers class TestLogger(object): def __init__(self, log_

python中斷點除錯模組pdb從入門到實戰

python模組簡介 在使用jupyter book、ipyhton或執行命令列時,通常會遇到除錯很不方便的情況。還好Python有自帶的pdb庫,發現用pdb來除錯程式還是很方便的,當然了,什麼遠端除錯,多執行緒之類,pdb是搞不定的 pdb模組使用的三種方式 1. 命令列模式

Python基礎(16):除錯是個技術活……

一,呼叫棧 定義:呼叫函式鏈。 用途:當出現錯誤時,分析呼叫棧可以定位出具體的錯誤位置。 示例: def foo(s): return 10 / int(s) def bar(s): return foo(s) * 2 def main(): bar('0