在Ubuntu系統中調試Python代碼,可以采用以下幾種技巧和工具:
print
語句def add(a, b):
print(f"Adding {a} and ") # 打印輸入參數
result = a + b
print(f"Result: {result}") # 打印計算結果
return result
add(3, 5)
assert
語句assert
語句用于檢查條件是否為真,如果不為真則拋出 AssertionError
。這有助于在開發過程中捕獲錯誤假設。def divide(a, b):
assert b != 0, "除數不能為零" # 檢查除數不為零
return a / b
divide(10, 2) # 正常情況
divide(10, 0) # 這會拋出 AssertionError
logging
模塊logging
模塊提供了更靈活的日志記錄方式,適用于大型項目。import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
def multiply(a, b):
logging.debug(f"Multiplying {a} and ")
result = a * b
logging.debug(f"Result: {result}")
return result
multiply(4, 5)
pdb
調試器pdb
(Python Debugger)是一個強大的調試工具,可以逐步執行代碼,檢查變量值,設置斷點等。import pdb
def factorial(n):
result = 1
for i in range(1, n + 1):
result *= i
pdb.set_trace() # 設置斷點
return result
factorial(5)
ipdb
調試器ipdb
是 pdb
的增強版,提供了更友好的交互界面。import ipdb
def complex_function(a, b, c):
x = a + b
y = b * c
z = x - y
ipdb.set_trace() # 設置斷點
return z
complex_function(3, 4, 5)
traceback
模塊traceback
模塊可以幫助你獲取和打印詳細的錯誤堆棧信息,適用于調試復雜問題。import traceback
def nested_function():
raise ValueError("這是一個錯誤")
def outer_function():
try:
nested_function()
except Exception as e:
print("捕獲到異常:")
traceback.print_exc()
outer_function()
ptvsd
并運行 Python 程序。Python
和 Remote - SSH
。pdb
進行調試。python -m pdb hello.py
通過這些技巧和工具,你可以在 Ubuntu 系統中高效地調試 Python 代碼,快速定位和解決問題。