Discuvr Python 格式化工具

辦公與資料

CSV 轉 Excel 貼上 CSV,立即以試算表形式檢視,數字、日期和編號都依 Excel 應儲存的類型處理。只在需要時才下載整潔的 .xlsx。 PDF 簽名 在瀏覽器中為 PDF 簽名:手寫、輸入或上傳簽名,放到任一頁面,加上日期,然後下載已簽署的副本。檔案絕不會離開你的裝置。 塗黑 永久塗黑 PDF、Word、Excel、PowerPoint、文字和圖片檔案。相符項目和方框會從檔案本身刪除,而不是蓋住,下載前還會再次檢查結果。 我的 IP 是什麼 查看您連線時網站看到的公用 IP 位址、它是共用(CGNAT)還是私有位址,以及您的瀏覽器還透露了什麼。 大小寫轉換與行工具 將文字轉換為大寫、小寫、標題或句子格式,把名稱轉為 camelCase 或 snake_case,並刪除重複行或排序清單。 文字比較 貼上兩個版本的文字,查看每一行新增、刪除和修改的內容,並標示改動的詞語。

寫作與提案

語氣潤飾 以適當的文法、結構與表達方式重新整理您撰寫的內容 - 同時保留您的個人風格。一次貼上,一次回覆,無需對話。 自由職業提案產生器 描述客戶的問題,即可在幾秒鐘內取得包含範疇、定價且隨時可傳送的自由職業提案。

法律與合規

IP 法律問答聊天機器人 提問印度智慧財產權法 - 商標、專利、著作權、設計等,每則回答上方列出所用的網路搜尋結果。 專利 FER 回覆產生器 貼上第一次審查意見通知書(FER)中的異議,起草結構化答覆;或上傳草稿,進行智慧財產權風險審查。 政府計畫資格查詢工具 只需一次回答一組簡短的問題。登入後,我們會儲存您的答案,讓您無需重新輸入即可查看可能符合哪些中央政府計畫的資格。

隱私與安全

網站安全性掃描 掃描網域以找出真實且可複現的安全弱點。每個發現都包含背後的觀察結果以及供您自行驗證的指令。 圖片清除 精確查看您的照片揭露了哪些資訊 - GPS、相機序號、您的姓名 - 然後將其清除。裁切、調整大小、模糊人臉與轉換格式,完全不會在任何地方儲存圖片。

開發者工具

JSON 格式化工具 一次貼上即可美化、精簡與驗證 JSON - 當無法解析時會顯示精確的行與列,並統計文件中的實際內容。 Python 格式化工具 像 Black 一樣重新格式化 Python 程式碼,可自訂行長與引號處理方式 - 並精確統計修改了多少行。 HTML 檢視器 貼上 HTML 並在沙盒中依手機、平板或桌面寬度即時預覽轉譯效果 - 支援美化、壓縮、指令碼控制台以及標記錯誤報告。 IP 子網路計算機 輸入 CIDR 表示法或帶子網路遮罩的 IP,立即取得網路位址、廣播位址、可用主機範圍與位址總數。 編碼 / 解碼 邊輸入邊編碼或解碼 Base64、Base64URL、URL 百分比編碼、HTML 實體和十六進位,完整支援 UTF-8。 Unix 時間戳記轉換器 將以秒、毫秒、微秒或奈秒為單位的 Unix 時間戳記轉換為 UTC 或全球主要時區的日期,或將日期轉換回時間戳記。 系統架構圖產生器 輸入 User -> API -> Database 這樣的箭頭,即可得到排好版的架構圖或流程圖。摺疊群組看全局,為步驟編號看細節流程。

AI 工作台

AI Playground 即時並排比較多家 LLM 提供商的回應。支援使用您自己的 API 金鑰。 Agent 測試場 體驗跨多家提供商且能使用工具(網路搜尋、計算機、URL 擷取)的 AI agent。

學習

Study Buddy 頂尖科技職位的面試準備教練,從準備的第一天直到接受錄取通知:涵蓋 DSA、LLD、系統設計、行為面試與 AI 輔助程式設計的計畫、模擬面試、履歷審查、求職申請追蹤以及錄取通知比較。

日常助手

QR Code 產生器 用文字、網址、WiFi 資訊或聯絡資料產生 QR 碼 - 輸出 PNG 圖片或 SVG 向量圖,錯誤修正等級由你選擇。 單位換算器 即時轉換長度、重量、溫度、體積、速度、面積與能量單位 - 支援 40 多種單位類型並立即顯示結果。 密碼產生器 使用密碼學安全的隨機性產生隨機密碼,調整其長度與字元類型,並以位元熵查看其強度。 字數統計與易讀性分析工具 統計字詞、字元、句子和段落數,估算閱讀時間,並評估易讀性 - 對中文、日文、韓文和泰文文字採用真正以字元為單位的計數方式。 年齡/日期差計算器 計算某人的確切年齡,或任意兩個日期之間的確切差值(年、月、日),以及總天數和總週數。 日期差計算機 計算兩個日期之間的天數、週數、月數和工作日,或對某個日期加減天數。 百分比計算器 計算Y的X%、一個數是另一個數的百分之幾、兩數之間的百分比增減,或反向百分比 - 一個工具內的四種常見計算。 SIP 定投計算機 查看每月投資在逐年遞增、初始單筆投入與通膨下能成長到多少,或倒推達成目標所需的每月金額。 BMI計算機 透過身高體重計算您的身體質量指數(BMI),支援公制或英制單位,並依世界衛生組織成人分級標準分類:體重過輕、正常、過重、肥胖。
登入 開始使用
所有工具開發者工具

Python 格式化工具

像 Black 一樣重新格式化 Python - 並精準查看修改了多少行。

您的程式碼

0 個字元

已格式化

 

關於 Python 格式化工具

這個工具會對你貼上的內容執行 Black - 多數 Python 專案早已認同的格式化工具 - 依你選擇的行寬與引號處理方式進行格式化。如果檔案無法解析,它會說明是哪一行;如果檔案已經格式化過,它也會照實告知,而不是假裝做了什麼。

功能作用

  • 以 79、88、100 或 120 欄進行 Black 格式化。
  • 「僅檢查」模式:在不修改檔案的情況下,了解檔案是否會改變。
  • 保留你自己的引號風格,或讓 Black 統一規範它。
  • 遵守或忽略那個讓集合保持展開狀態的神奇尾隨逗號。
  • 當語法與版本相關時,指定目標 Python 版本。
  • 語法錯誤會回報行號、欄號以及周圍的程式碼。
  • 回報新增與刪除了多少行,以及檔案的整體結構。

運作方式

  1. 1 貼上程式碼,或整個檔案的內容。
  2. 2 選擇一個行寬以及你在意的任何選項。
  3. 3 按下格式化,然後複製或下載結果。

你的程式碼永遠不會被執行

格式化 Python 程式碼並不需要執行它。程式碼會被解析成語法樹,再完全在記憶體中依據這棵樹重新寫出 - 它從不會被寫入檔案,從不會被匯入,也從不會被執行。一個會執行你貼上內容的格式化工具,其實就是帶著文字輸入框的遠端命令列。

為什麼是 Black,而不是我們自己的看法

Black 是一種保持 AST 不變的轉換:輸出的程式碼與輸入的程式碼是同一個程式。正是這個特性,才讓一個格式化工具值得信任,也正因如此,這個工具的任何環節都沒有語言模型參與其中。被要求整理程式碼的模型,偶爾會在整理過程中順手改寫某一行,而對可正常運作的程式碼進行無聲的改動,正是格式化工具絕不能犯的失誤。

僅檢查

這和 CI 問的是同一個問題:這個檔案會改變嗎?檢查模式會原樣傳回你的原始程式碼,並回報 Black 本來是否會重新格式化它,以及會改動多少行。這是快速弄清楚某個流水線為什麼在一個你無法在本地重現的檔案上失敗的辦法。

魔法結尾逗號與 fmt: off 實例

最後一項後面的逗號會讓 Black 把呼叫或集合保持為每行一項:result = compute(alpha, beta,) 會變成四行,alpha, 和 beta, 各佔一行。勾選忽略魔法結尾逗號後,同樣的輸入只要放得下行寬就會變成 result = compute(alpha, beta)。要保護手動對齊的程式碼區塊(例如矩陣),在它上方一行寫 # fmt: off,下方寫 # fmt: on,Black 會原樣保留兩者之間的內容;行尾的 # fmt: skip 只保護這一行。這些是 Black 本身的註解,所以在你專案的 CI 執行 Black 時同樣有效。

問題

我的程式碼會被上傳或儲存嗎?

程式碼會被送到伺服器,在記憶體中格式化後於同一個回應中傳回。沒有任何內容會被寫入磁碟、快取或記錄日誌,使用記錄只保留計數 - 大小、選項、改動了多少行 - 從不保留程式碼本身。

格式化會改變我程式碼的行為嗎?

不會。Black 改變的是排版,而不是行為,但它做的不只是挪動空格。它會刪除多餘的括號(x = (1) 變成 x = 1),把數字的前綴和指數改成小寫(0XABCDEF 變成 0xABCDEF,1E5 變成 1e5),把呼叫拆成多行時補上結尾逗號,壓縮連續的空行,並去掉 docstring 內部的空格(""" Doc. """ 變成 """Doc.""")。最後這一項會改變 __doc__ 的文字,只有當你的程式碼讀取自己的 docstring 時才有影響。

為什麼它完全沒有重新格式化我的檔案?

因為它在你選擇的行寬下已經是格式化過的了。工具會直接說「已經格式化過」,而不是悄悄傳回一份原樣副本。

它會排序我的 import 嗎?

不會。排序 import 是 isort 的工作,不是 Black 的,兩者分歧足夠常見,如果在這裡這麼做會讓你感到意外。

它能格式化有語法錯誤的檔案嗎?

任何格式化工具都做不到 - 一個無法解析的檔案沒有可供重寫的結構。你會得到行號、欄號以及周圍的程式碼,方便你修正後再試一次。

它遵循 PEP 8 嗎?

Black 與 PEP 8 相容,只有一處廣為人知的偏差:它的預設行寬是 88 而不是 79。如果你需要更嚴格的數值,請在行寬選擇器中選 79。

最大能格式化多大的檔案?

每次最多 400,000 個字元。格式化超過 10 秒會被中止,只有非常大或高度重複的檔案才會碰到,每個 IP 位址每 10 分鐘可格式化 30 次。

如何在編輯器、pre-commit 或 CI 中得到同樣的格式?

本頁執行的是 Black,寬螢幕時頁面頂端列會顯示其版本。Black 從 pyproject.toml 的 [tool.black] 區段讀取專案設定,鍵名與長命令列選項相同:你選的"行長度"對應 line-length = 88,勾選了"保留我的引號"就寫 skip-string-normalization = true,"忽略魔法結尾逗號"對應 skip-magic-trailing-comma = true,在"目標"中固定的版本對應 target-version = ["py311"]。編輯器外掛和 pre-commit 掛鉤讀取的也是這個檔案。用 black . 格式化,在 CI 中執行 black --check --diff . :它不會修改任何檔案,若有檔案會被重新格式化則以結束代碼 1 結束。請固定與本頁相同的 Black 版本,因為每個日曆年的第一個版本可能會改變穩定風格。

輸出結果與 Ruff 的格式化工具(ruff format)相同嗎?

幾乎總是相同,但並非逐位元組一致。Ruff 的格式化工具被設計為 Black 的直接替代品,Ruff 文件指出,在 Django、Zulip 等已用 Black 格式化的大型專案上,超過 99.9% 的行結果完全相同。對從未經過 Black 處理的程式碼,差異會更多,尤其是行尾註解,其文件列出了刻意的差異。它的預設行長同樣是 88,在 [tool.ruff] 中以 line-length 設定;[tool.ruff.format] 中的 quote-style = "preserve" 對應"保留我的引號",skip-magic-trailing-comma = true 對應"忽略魔法結尾逗號"。如果你的 CI 執行 ruff format --check,請用 Ruff 而不是本頁來檢查檔案。