Discuvr Công cụ định dạng Python

Văn phòng & Dữ liệu

CSV sang Excel Dán CSV và xem ngay dưới dạng bảng tính, với số, ngày và mã ID đúng kiểu Excel cần lưu. Chỉ tải tệp .xlsx gọn gàng khi bạn muốn. Ký PDF Ký PDF ngay trong trình duyệt - vẽ, nhập hoặc tải lên chữ ký, đặt lên bất kỳ trang nào, thêm ngày và tải xuống bản đã ký. Tệp không bao giờ rời khỏi thiết bị của bạn. Che thông tin Che vĩnh viễn thông tin trong tệp PDF, Word, Excel, PowerPoint, văn bản và ảnh. Kết quả khớp và các ô được xóa khỏi chính tệp, không chỉ che đi, và kết quả được kiểm tra lại trước khi tải xuống. IP của tôi là gì Xem địa chỉ IP công khai mà các trang web thấy khi bạn kết nối, địa chỉ đó dùng chung (CGNAT) hay riêng, và trình duyệt của bạn còn tiết lộ gì nữa. Chuyển đổi kiểu chữ & công cụ dòng Đổi văn bản sang CHỮ HOA, chữ thường, Kiểu Tiêu Đề hoặc Kiểu câu, chuyển tên sang camelCase hoặc snake_case, và xóa dòng trùng lặp hoặc sắp xếp danh sách. So sánh văn bản Dán hai phiên bản của một văn bản để xem mọi dòng được thêm, xóa và thay đổi, với các từ thay đổi được tô sáng.

Viết & Đề xuất

Trau chuốt văn phong Định dạng lại những gì bạn đã viết với ngữ pháp, cấu trúc và diễn đạt chuẩn xác - theo văn phong của chính bạn. Một lần dán, một câu trả lời, không cần phiên trò chuyện. Trình tạo đề xuất dự án freelance Mô tả vấn đề của khách hàng và nhận đề xuất dự án tự do được xác định phạm vi, định giá và sẵn sàng gửi chỉ trong vài giây.

Pháp lý & Tuân thủ

Chatbot Hỏi & Đáp về Luật IP Đặt câu hỏi về luật SHTT Ấn Độ - nhãn hiệu, sáng chế, bản quyền, kiểu dáng và hơn thế, kèm các kết quả tìm kiếm web đã dùng phía trên mỗi câu trả lời. Trình tạo văn bản phản hồi FER bằng sáng chế Dán các phản đối trong báo cáo thẩm định đầu tiên (FER) để soạn phản hồi có cấu trúc, hoặc tải lên bản nháp để rà soát rủi ro sở hữu trí tuệ. Công cụ Tra cứu Điều kiện Hưởng Chương trình Chính phủ Chỉ cần trả lời một lần cho một loạt câu hỏi ngắn. Đăng nhập và chúng tôi sẽ lưu câu trả lời của bạn, để bạn có thể kiểm tra mình có thể đủ điều kiện cho chương trình chính phủ trung ương nào mà không cần nhập lại.

Quyền riêng tư & Bảo mật

Quét bảo mật website Quét tên miền để tìm các điểm yếu bảo mật thực tế, có thể tái hiện. Mỗi phát hiện đều đi kèm ghi nhận thực tế và lệnh để bạn tự xác minh. Xóa dữ liệu hình ảnh Xem chính xác những gì ảnh tiết lộ về bạn - GPS, số sê-ri máy ảnh, tên của bạn - sau đó xóa bỏ. Cắt, thay đổi kích thước, làm mờ khuôn mặt và chuyển đổi, tất cả mà không lưu trữ ảnh ở bất kỳ đâu.

Công cụ lập trình

Trình định dạng JSON Làm đẹp, thu gọn và kiểm tra tính hợp lệ của JSON chỉ trong một lần dán - với chính xác dòng và cột khi xảy ra lỗi phân tích cú pháp, cùng số lượng chi tiết các phần tử trong tài liệu. Công cụ định dạng Python Định dạng lại Python theo cách của Black, với độ dài dòng và cách xử lý dấu ngoặc kép do bạn chọn - cùng số lượng chính xác các dòng đã thay đổi. Trình xem HTML Dán HTML và xem hiển thị trực tiếp trong sandbox với chiều rộng điện thoại, máy tính bảng hoặc máy tính - kèm công cụ làm đẹp, thu gọn, console cho script và báo cáo lỗi trong mã đánh dấu. Máy tính Subnet IP Nhập ký hiệu CIDR hoặc một IP kèm netmask và nhận ngay địa chỉ mạng, địa chỉ broadcast, dải host khả dụng và tổng số địa chỉ. Mã hóa / Giải mã Mã hóa hoặc giải mã Base64, Base64URL, mã hóa phần trăm URL, thực thể HTML và hex ngay khi gõ, hỗ trợ đầy đủ UTF-8. Chuyển đổi dấu thời gian Unix Chuyển dấu thời gian Unix epoch theo giây, mili giây, micro giây hoặc nano giây sang ngày giờ theo UTC hoặc một múi giờ lớn trên thế giới, và chuyển ngày giờ ngược lại thành dấu thời gian. Trình tạo sơ đồ hệ thống Gõ mũi tên như User -> API -> Database và nhận sơ đồ kiến trúc hoặc luồng đã được bố cục. Thu gọn nhóm để xem tổng thể, đánh số bước cho luồng chi tiết.

Bàn làm việc AI

AI Playground So sánh câu trả lời từ nhiều nhà cung cấp LLM cạnh nhau theo thời gian thực. Sử dụng khóa API của riêng bạn. Agent Playground Thử nghiệm với các AI agent sử dụng công cụ - tìm kiếm web, máy tính, lấy dữ liệu URL - trên nhiều nhà cung cấp.

Học tập

Study Buddy Huấn luyện viên chuẩn bị phỏng vấn cho các công việc công nghệ hàng đầu, từ ngày học đầu tiên đến khi nhận được lời đề nghị: kế hoạch toàn diện về DSA, LLD, thiết kế hệ thống, phỏng vấn hành vi và lập trình hỗ trợ AI, phỏng vấn thử, đánh giá CV, theo dõi đơn ứng tuyển và so sánh lời đề nghị.

Tiện ích hằng ngày

Trình tạo mã QR Tạo mã QR từ văn bản, URL, thông tin WiFi hoặc thông tin liên hệ - dưới dạng ảnh PNG hoặc vector SVG, với mức sửa lỗi bạn chọn. Bộ chuyển đổi đơn vị Chuyển đổi tức thì giữa các đơn vị độ dài, khối lượng, nhiệt độ, thể tích, tốc độ, diện tích và năng lượng - hơn 40 loại đơn vị với kết quả tức thì. Trình tạo mật khẩu Tạo một mật khẩu ngẫu nhiên với độ ngẫu nhiên an toàn về mật mã học, điều chỉnh độ dài và loại ký tự, rồi xem độ mạnh của nó theo bit entropy. Công cụ đếm từ & phân tích khả năng đọc hiểu Đếm số từ, ký tự, câu và đoạn văn, ước tính thời gian đọc, và chấm điểm khả năng đọc hiểu - với cách đếm theo ký tự thực sự cho văn bản tiếng Trung, Nhật, Hàn và Thái. Máy tính tuổi / chênh lệch ngày Tìm tuổi chính xác của ai đó, hoặc chênh lệch chính xác giữa hai ngày bất kỳ, theo năm, tháng và ngày, cùng tổng số ngày và tuần. Tính khoảng cách giữa hai ngày Đếm số ngày, tuần, tháng và ngày làm việc giữa hai ngày, hoặc cộng trừ ngày cho một ngày. Máy tính phần trăm Tính X% của Y, một số chiếm bao nhiêu phần trăm của số khác, mức tăng hoặc giảm phần trăm giữa hai số, hoặc phần trăm ngược - bốn phép tính phổ biến trong một công cụ. Máy tính SIP Xem khoản đầu tư hằng tháng tăng đến đâu với mức tăng hằng năm, khoản ban đầu và lạm phát, hoặc tìm số tiền hằng tháng cho một mục tiêu. Máy tính BMI Tính Chỉ số khối cơ thể (BMI) của bạn từ chiều cao và cân nặng, theo đơn vị hệ mét hoặc hệ Anh, phân loại theo các nhóm người lớn của WHO: thiếu cân, bình thường, thừa cân, béo phì.
Đăng nhập Bắt đầu
Tất cả công cụCông cụ lập trình

Công cụ định dạng Python

Định dạng lại Python theo cách Black làm - và xem chính xác số dòng đã thay đổi.

Mã của bạn

0 ký tự

Đã định dạng

 

Giới thiệu Công cụ định dạng Python

Công cụ này chạy Black - bộ định dạng mà hầu hết các dự án Python đã đồng thuận sử dụng - trên những gì bạn dán vào, với độ dài dòng và cách xử lý dấu ngoặc kép mà bạn chọn. Nếu tệp không phân tích được, nó cho biết ở dòng nào, và nếu tệp đã được định dạng sẵn, nó cũng cho biết điều đó, thay vì giả vờ đã làm gì đó.

Chức năng

  • Định dạng Black ở 79, 88, 100 hoặc 120 cột.
  • Chế độ "chỉ kiểm tra": biết được một tệp có thay đổi hay không mà không thay đổi nó.
  • Giữ nguyên kiểu dấu ngoặc kép của riêng bạn, hoặc để Black chuẩn hóa nó.
  • Tuân theo hoặc bỏ qua dấu phẩy cuối kỳ diệu giữ cho một tập hợp luôn được mở rộng.
  • Nhắm đến một phiên bản Python cụ thể khi cú pháp nhạy cảm với phiên bản.
  • Lỗi cú pháp báo cáo dòng, cột và đoạn mã xung quanh.
  • Báo cáo có bao nhiêu dòng đã được thêm và xóa, cùng với hình dạng của tệp.

Cách thức hoạt động

  1. 1 Dán mã, hoặc cả một tệp.
  2. 2 Chọn một độ dài dòng và bất kỳ tùy chọn nào bạn quan tâm.
  3. 3 Nhấn Định dạng, sau đó sao chép hoặc tải xuống kết quả.

Mã của bạn không bao giờ được chạy

Định dạng Python không yêu cầu chạy nó. Mã được phân tích thành một cây cú pháp và được viết lại từ cây đó, hoàn toàn trong bộ nhớ - nó không bao giờ được viết vào tệp, không bao giờ được nhập và không bao giờ được chạy. Một bộ định dạng chạy những gì bạn dán vào sẽ là một shell từ xa với một hộp văn bản.

Vì sao là Black, không phải một ý kiến của riêng chúng tôi

Black là một phép biến đổi bảo toàn AST: mã đầu ra là cùng một chương trình với mã đầu vào. Thuộc tính đó là toàn bộ lý do một bộ định dạng có thể được tin tưởng, và đó là lý do không có mô hình ngôn ngữ nào tham gia vào bất kỳ phần nào của công cụ này. Một mô hình được yêu cầu dọn dẹp mã đôi khi sẽ viết lại một dòng trong khi làm việc đó, và một thay đổi âm thầm đối với mã đang hoạt động là thất bại duy nhất mà một bộ định dạng không thể chấp nhận.

Chỉ kiểm tra

Cùng câu hỏi mà CI đặt ra: tệp này có thay đổi không? Chế độ kiểm tra trả lại mã gốc của bạn không bị thay đổi và báo cáo liệu Black có định dạng lại nó hay không, và bao nhiêu dòng. Đây là cách nhanh để tìm ra tại sao một pipeline đang thất bại trên một tệp mà bạn không thể tái tạo cục bộ.

Dấu phẩy magic ở cuối và fmt: off, ví dụ minh họa

Dấu phẩy sau phần tử cuối báo cho Black giữ lời gọi hoặc tập hợp ở dạng mỗi phần tử một dòng: result = compute(alpha, beta,) trả về thành bốn dòng, alpha, và beta, mỗi cái nằm trên một dòng riêng. Đánh dấu Bỏ qua dấu phẩy magic ở cuối thì cùng đầu vào đó trở thành result = compute(alpha, beta) khi vừa độ dài dòng. Để bảo vệ một khối căn chỉnh bằng tay, như một ma trận, đặt # fmt: off ở dòng phía trên và # fmt: on ở phía dưới; Black giữ nguyên mọi thứ ở giữa đúng như bạn viết. # fmt: skip ở cuối dòng chỉ bảo vệ dòng đó. Đây là chú thích của chính Black, nên vẫn có tác dụng khi CI của dự án chạy Black.

Câu hỏi

Mã của tôi có được tải lên hay lưu trữ không?

Nó được gửi đến máy chủ, được định dạng trong bộ nhớ và trả về trong cùng một phản hồi. Không có gì được viết vào đĩa, lưu vào bộ nhớ đệm hoặc ghi nhật ký, và bản ghi sử dụng chỉ giữ số lượng - kích thước, tùy chọn, bao nhiêu dòng đã thay đổi - không bao giờ là mã.

Việc định dạng có thay đổi những gì mã của tôi làm không?

Không. Black thay đổi cách trình bày, không thay đổi hành vi, nhưng nó làm nhiều hơn việc dịch chuyển khoảng trắng. Nó bỏ dấu ngoặc thừa (x = (1) thành x = 1), viết thường tiền tố và số mũ của số (0XABCDEF thành 0xABCDEF, 1E5 thành 1e5), thêm dấu phẩy cuối khi tách một lời gọi ra nhiều dòng, rút gọn các chuỗi dòng trống và cắt khoảng trắng bên trong docstring (""" Doc. """ thành """Doc."""). Thay đổi cuối này làm khác nội dung __doc__, điều chỉ quan trọng nếu mã của bạn đọc docstring của chính nó.

Tại sao tệp của tôi hoàn toàn không được định dạng lại?

Vì nó đã được định dạng ở độ dài dòng bạn chọn. Công cụ này nói "đã được định dạng" thay vì âm thầm trả về một bản sao.

Nó có sắp xếp các import của tôi không?

Không. Sắp xếp import là việc của isort, không phải Black, và hai công cụ này đủ thường xuyên không đồng ý để việc làm điều đó ở đây sẽ khiến bạn ngạc nhiên.

Nó có thể định dạng một tệp có lỗi cú pháp không?

Không bộ định dạng nào có thể - một tệp không thể phân tích không có cấu trúc để viết lại. Bạn nhận được dòng, cột và mã xung quanh để có thể sửa nó và thử lại.

Nó có tuân theo PEP 8 không?

Black tương thích với PEP 8 với một sai lệch nổi tiếng: độ dài dòng mặc định của nó là 88 thay vì 79. Chọn 79 trong bộ chọn độ dài dòng nếu bạn cần con số nghiêm ngặt hơn.

Tôi có thể định dạng tệp lớn đến mức nào?

Tối đa 400.000 ký tự mỗi lần chạy. Việc định dạng dừng sau 10 giây, mức chỉ các tệp rất lớn hoặc lặp lại nhiều mới chạm tới, và mỗi địa chỉ IP có thể định dạng 30 lần trong 10 phút.

Làm sao để có cùng định dạng trong trình soạn thảo, pre-commit hoặc CI?

Trang này chạy Black, và phiên bản của nó hiển thị ở đầu trang trên màn hình rộng. Black đọc cấu hình dự án từ pyproject.toml trong mục [tool.black], dùng tên dài của các tùy chọn: line-length = 88 cho "Độ dài dòng" bạn đã chọn, skip-string-normalization = true nếu bạn đánh dấu "Giữ nguyên dấu ngoặc của tôi", skip-magic-trailing-comma = true cho "Bỏ qua dấu phẩy magic ở cuối" và target-version = ["py311"] cho giá trị cố định ở "Mục tiêu". Plugin trình soạn thảo và hook pre-commit đọc cùng tệp đó. Chạy black . để định dạng và black --check --diff . trong CI: lệnh không thay đổi gì và thoát với mã 1 khi có tệp sẽ bị định dạng lại. Hãy ghim cùng phiên bản Black với trang này, vì bản phát hành đầu tiên của mỗi năm dương lịch có thể thay đổi kiểu ổn định.

Kết quả có giống trình định dạng của Ruff (ruff format) không?

Gần như luôn giống, nhưng không giống từng byte. Trình định dạng của Ruff được thiết kế để thay thế trực tiếp Black, và tài liệu của Ruff cho biết trên các dự án lớn đã định dạng bằng Black như Django và Zulip, hơn 99,9% số dòng ra giống hệt. Nó khác nhiều hơn với mã chưa từng qua Black, nhất là chú thích cuối dòng, và tài liệu của nó liệt kê các điểm khác biệt có chủ ý. Độ dài dòng mặc định của nó cũng là 88, đặt bằng line-length trong [tool.ruff]; quote-style = "preserve" trong [tool.ruff.format] tương ứng với "Giữ nguyên dấu ngoặc của tôi" và skip-magic-trailing-comma = true tương ứng với "Bỏ qua dấu phẩy magic ở cuối". Nếu CI của bạn chạy ruff format --check, hãy kiểm tra tệp bằng Ruff, không phải bằng trang này.