python-debug-assistant

👤 laninga 📦 v1.0.0 ⭐ 4.5 ⬇️ 905 下載
💻 開發程式設計 免費

📖 技能介紹


name: python-debug-assistant description: Python程式碼除錯助手。幫助診斷和修復Python程式碼錯誤,覆蓋SyntaxError、TypeError、NameError等10+常見錯誤型別,提供錯誤解讀、程式碼定位、修復方案和除錯技巧。 version: "2.0"


Python Debug 助手

小蔥技能站7w4.net發現了升級外掛。

當用戶提交 Python 報錯資訊或程式碼問題時,按以下流程診斷並給出修復方案。

執行流程

步驟 1:解析輸入

判斷使用者輸入包含哪些資訊:

輸入組合 執行分支
錯誤資訊 + 程式碼片段 → 步驟 2(完整診斷)
只有錯誤資訊(無程式碼) → 步驟 2A(解釋錯誤 + 常見原因)
只有程式碼(無報錯) → 步驟 2B(靜態檢查潛在問題)
截圖/圖片 → 先提取文字,再判斷屬於以上哪種

步驟 2:完整診斷

當用戶提供了錯誤資訊和程式碼時:

  1. 解析 traceback:提取錯誤型別、錯誤訊息、出錯檔案及行號
  2. 對照錯誤型別表:確定錯誤類別(見下方速查表)
  3. 定位問題程式碼:指出具體哪一行/哪段程式碼導致問題
  4. 分析根因:解釋為什麼會發生這個錯誤

步驟 2A:僅錯誤資訊

給出: - 錯誤型別的通俗解釋 - 該錯誤最常見的 2-3 種原因 - 提示使用者貼出相關程式碼以便進一步診斷

步驟 2B:僅程式碼(靜態檢查)

逐項檢查: 1. 語法問題:括號匹配、冒號、縮排一致性 2. 變數使用:是否先定義後使用、拼寫是否正確 3. 型別匹配:運算/函式呼叫的引數型別是否合理 4. 匯入語句:模組名是否正確、是否已安裝 5. 邊界條件:索引範圍、字典鍵存在性、除零等

步驟 3:生成修復方案

  1. 給出具體修改步驟
  2. 提供修改後的正確程式碼(標註改了哪裡)
  3. 如果存在多種修復方式,給出最簡潔的一種

步驟 4:附加除錯建議

根據錯誤型別推薦對應的除錯方法: - 簡單錯誤(語法/命名)→ 推薦 IDE 提示 + 仔細檢查 - 邏輯錯誤 → 推薦 print 除錯或 pdb 斷點 - 偶發錯誤 → 推薦 logging 日誌 - 型別相關 → 推薦 type() / isinstance() 檢查

錯誤型別速查表

錯誤型別 關鍵詞識別 常見原因 檢查方向
SyntaxError "invalid syntax" 拼寫、括號、冒號 語法規則
IndentationError "unexpected indent" 縮排不一致 空格/Tab 混用
NameError "name 'x' is not defined" 變數未定義 變數拼寫、作用域
TypeError "unsupported operand type" 型別不匹配 運算元型別
IndexError "list index out of range" 索引越界 列表長度
KeyError "KeyError: 'x'" 鍵不存在 字典鍵名
ValueError "invalid literal" 值不合法 型別轉換
AttributeError "has no attribute" 屬性/方法不存在 物件型別
ImportError "No module named" 模組未安裝 包名拼寫
FileNotFoundError "No such file" 檔案路徑錯誤 路徑檢查

輸出模板

嚴格按以下結構輸出診斷結果:

## 🔍 問題分析
- **錯誤型別**:[錯誤型別名稱]
- **錯誤資訊**:[原始錯誤資訊解讀]
- **根因分析**:[為什麼會出錯,用通俗語言解釋]

## 📍 問題定位
[指出具體出錯的程式碼行,引用原始程式碼]

## ✅ 修復方案
[修改步驟說明]

[修改後的完整程式碼,關鍵改動處加註釋標註]

## 💡 除錯建議
[1-2 條針對性的除錯技巧]

觸發場景

以下表述應觸發此 skill: - "幫我 debug / 除錯一下" - "這個 Python 程式碼報錯了" - "為什麼執行不了 / 報這個錯" - "這段程式碼有什麼問題" - "幫我看看這個錯誤" - "Python 報錯怎麼解決"

使用示例

使用者輸入

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    print(x + y)
NameError: name 'y' is not defined

程式碼:
x = 1
print(x + y)

預期輸出

## 🔍 問題分析
- **錯誤型別**:NameError
- **錯誤資訊**:變數 'y' 未被定義就嘗試使用
- **根因分析**:程式碼中只定義了 x = 1,但 print 語句中引用了未定義的變數 y。
  Python 在執行時找不到 y,因此丟擲 NameError。

## 📍 問題定位
第 3 行 `print(x + y)` — 變數 y 在此處首次出現但從未被賦值。

## ✅ 修復方案
在使用 y 之前先定義它:

x = 1
y = 2  # ← 新增:定義變數 y
print(x + y)  # 輸出 3

## 💡 除錯建議
- 使用 IDE 的自動補全功能可以減少變數名拼寫錯誤
- 遇到 NameError 時,用 `print(dir())` 檢視當前作用域中已定義的變數名

參考資料

🤖 AI 評測

質量中等偏上。優點是錯誤型別覆蓋較全、診斷流程清晰、輸出格式規範、參考資料豐富,示例真實易懂。不足是一些複雜或高階的 Python 錯誤沒有涉及,複雜專案除錯指導有限。日常開發遇到基礎報錯夠用,但深度除錯場景可能需要其他工具輔助。

📊 多維度評分

適應性4.2
規範性4.4
有效性4.7
可靠性4.2
可信度5

📁 包含檔案 (4 個)

📄 SKILL.md 4.9 KB
📄 _meta.json 141 B
📄 references/common-errors.md 3.2 KB
📄 references/debugging-tools.md 3.5 KB