ToolActToolAct

Python-Formatierungstool

Python Eingabe
Ausgabe
Zeilen: 1Zeichen: 0Bytes: 0
Zeilen: 1Zeichen: 0

Was ist Python-Formatierung?

Der Python-Formatter ordnet Python-Code mit konsistenter Einrückung, Zeilenumbrüchen und übersichtlicher Struktur. Gerade in Python ist Einrückung Teil der Syntax, deshalb kann schlecht kopierter oder gemischter Code nicht nur unleserlich, sondern auch fehleranfällig sein. Das Werkzeug hilft bei Skripten, Notebook-Auszügen, generiertem Code, Lernbeispielen, Reviews und kleinen Refactorings, indem Funktionen, Klassen, Imports, Listen, Dictionaries und verschachtelte Ausdrücke klarer erscheinen. Formatierung behebt jedoch keine Logikfehler, Typfehler, fehlende Abhängigkeiten oder falsche Laufzeitumgebung. In echten Projekten sollte das Ergebnis mit Black, Ruff, isort oder den Teamregeln abgestimmt werden. Besonders bei produktiven Daten oder Codebasen sollte das Ergebnis anschließend mit Parser, Tests oder Projektregeln geprüft werden.

Anleitung

Anleitung

  1. Fügen Sie Python-Code im linken Eingabefeld ein oder geben Sie ihn ein
  2. Wählen Sie die Einrückungstiefe (2 Leerzeichen, 4 Leerzeichen oder Tabulator)
  3. Klicken Sie auf „Format", um den Code zu verschönern, oder „Minify", um ihn zu komprimieren
  4. Die Ergebnisse erscheinen rechts (mit Syntaxhervorhebung)
  5. Klicken Sie auf „Kopieren", um in die Zwischenablage zu kopieren

Optionsbeschreibung

EinrückungstiefeWählen Sie zwischen 2 Leerzeichen, 4 Leerzeichen oder Tabulator-Einrückung. PEP 8 empfiehlt 4 Leerzeichen.
FormatCode mit korrekter Einrückung und Zeilenumbrüchen verschönern
MinifyLeerzeichen und Kommentare entfernen, um die Dateigröße zu reduzieren

Python-Tipps

  • Python ist einrückungsempfindlich – prüfen Sie formatierte Kontrollblöcke, bevor Sie das Ergebnis in ein Projekt kopieren.
  • Die Formatierung führt keine Typüberprüfungen, Imports oder Tests aus. Verwenden Sie Ihre gewohnten Python-Tools für die Validierung von Verhalten und Abhängigkeiten.

Anwendungsfälle

Eingefügten Python-Code bereinigen, dabei Strings und Kommentare schützenNutzen Sie den Formatter, wenn ein Snippet ungleichmäßige Einrückung, überflüssige Leerzeilen oder kopierte Whitespace aus einem Chat, Wiki oder Ticket hat. Er schützt quotierte Strings, dreifach-quotierte Blöcke und Kommentare, bevor die Einrückung normalisiert wird — so werden Dokumentationstexte und Inline-Anmerkungen nicht versehentlich umgeschrieben. Die Ausgabe ist die Art von Snippet, das direkt in eine README oder eine Stack-Antwort eingefügt werden kann, ohne eine Neuformatierung auszulösen.
Einfache Klammer- und Stringfehler vor dem Teilen von Code erkennenDas Werkzeug validiert gepaarte runde, eckige und geschweifte Klammern sowie nicht geschlossene dreifach-quotierte Strings, bevor die Ausgabe erzeugt wird. Es ist kein vollständiger Python-Interpreter oder Black-Ersatz, aber es fängt offensichtliche strukturelle Fehler in kleinen Beispielen, Lektionen und Support-Antworten ab. Kombinieren Sie den Formatter mit einem echten Linter in CI, um Logikprobleme zu erkennen, die ein Formatter nicht sieht.
Zwischen lesbarer Ausgabe und kompakten Einzeilern wechselnWählen Sie 2 Leerzeichen, 4 Leerzeichen oder Tabs für die formatierte Ausgabe, oder minimieren Sie den Code in eine kompakte, durch Semikolons getrennte Form für kurze Demos und Einbettungen. Das Ergebnis kann als formatierte .py oder minimierte .py kopiert oder heruntergeladen werden, je nach gewähltem Modus. Die minimierte Form eignet sich für Einbettung in Shell-Einzeiler oder kurze E-Mail-Signaturen.
F-Strings und dreifach-quotierte Docstrings prüfenFühren Sie verschachtelte f-strings, Regex-Samples und dreifach-quotierte Docstrings mit eingebetteten Code-Blöcken durch den Formatter, um zu prüfen, ob geschweifte Klammern und Anführungszeichen ausgeglichen bleiben. Unerwartete Einrückung innerhalb von Docstrings bedeutet meist, dass die Quelle ein nicht geschlossenes dreifaches Anführungszeichen weiter oben hatte. Prüfen Sie das Original sorgfältig, wenn der Formatter einen Parse-Fehler bei einem auf den ersten Blick korrekten Snippet meldet.
Black 88-Spalten vs. PEP 8 79-Spalten und autopep8/yapf/Black vergleichenDie Ausgabe hier verwendet eine konfigurierbare Zeilenbreite statt eines festen Projekt-Stils; das breitere 88-Spalten-Ziel von Black liefert ein kompakteres Ergebnis, während der PEP-8-Standard von 79 Spalten das ist, was autopep8 und die meisten Editoren voreinstellen. Black ist meinungsstark und nicht konfigurierbar, yapf orientiert sich am Google-Stil und ist anpassbar, und autopep8 behebt nur PEP-8-Verletzungen, ohne Code umzustrukturieren. Nutzen Sie dieses Browser-Werkzeug für eine schnelle Bereinigung, und führen Sie dann Black oder Ruff in CI aus, um das Projekt mit dem vom Team standardisierten Stil konsistent zu halten.

Technisches Prinzip

Python ist eine der wenigen Mainstream-Sprachen, die Einrückung statt geschweifter Klammern verwenden, um Codeblöcke zu definieren. Aufeinanderfolgende Anweisungen mit gleicher Einrückung gehören zum selben Block; ein Leerzeichen mehr oder weniger ändert die Semantik. Dieses Design lässt die visuelle Struktur des Codes mit seiner Logik übereinstimmen, erfordert aber vom Formatter, die logischen Ebenen präzise zu identifizieren. Der Formatter scannt den Code zunächst mit dem tokenize-Modul oder einem eigenen Lexer und behandelt die führenden Leerzeichen jeder Zeile als Einrückungsinformation. Anweisungen innerhalb von Klammern (rund, eckig oder geschweift) können über mehrere Zeilen gehen; in diesem Fall wird die Einrückung durch die Klammer Tiefe bestimmt statt durch die führenden Leerzeichen. Leerzeichen innerhalb von Zeichenkettenliteralen (dreifach-quotiert, einfach-quotiert) dürfen nicht verändert werden, da sich sonst der Zeichenkettenwert ändert. PEP 8 ist Pythons offizieller Stilguide und spezifiziert 4-Leerzeichen-Einrückung, eine maximale Zeilenlänge von 79 Zeichen, Leerzeichen um Operatoren, gruppierte Imports und Namenskonventionen Black ist ein führendes Beispiel der Formatter-Schule ohne Konfiguration: Er erzwingt doppelt-quotierte Zeichenketten, nachgestellte Kommas und eine 88-Zeichen-Zeilenlänge mit strengen und nicht konfigurierbaren Regeln. yapf ist näher am Google-Stil und konfigurierbar.

  • Einrückungssemantik: Python verwendet führende Leerzeichen, um Codeblöcke zu bestimmen; gleiche Einrückung bedeutet gleichen Block, eine Änderung der Einrückung wechselt den Gültigkeitsbereich
  • PEP-8-Regeln: 4-Leerzeichen-Einrückung, Zeilenbreite von 79 Zeichen, Leerzeichen um Operatoren, CapWords für Klassennamen, snake_case für Funktionsnamen
  • Klammer-Zeilenumbrüche: Anweisungen innerhalb von Klammern (rund, eckig, geschweift) können umgebrochen werden, und die Einrückung wird durch die Klammer Tiefe bestimmt statt durch die führenden Leerzeichen
  • Zeichenketten-Grenzen: Leerzeichen innerhalb von dreifach-quotierten Zeichenketten und Docstrings dürfen nicht geändert werden, da sonst der literal-Inhalt beschädigt wird
  • Black-Stil: Keine Konfiguration, nicht anpassbar, erzwingt doppelte Anführungszeichen, nachgestellte Kommas, 88 Zeichen pro Zeile, identisch im gesamten Projekt
  • Typannotationen: Eingeführt in PEP 484; der Formatter erhält die korrekte Zeichensetzung um -> Rückgabetypen und Parameter : type-Annotationen bei

Beispiele

Funktionsdefinitionen formatieren

Eingabe: def add(a,b):
  return a+b


def subtract(a,b):
  return a-b
Ausgabe:
def add(a, b):
    return a + b


def subtract(a, b):
    return a - b

List Comprehensions formatieren

Eingabe: result=[x*x for x in range(10) if x%2==0]
result2={k:v for k,v in items if v>0}
Ausgabe:
result = [x * x for x in range(10) if x % 2 == 0]
result2 = {k: v for k, v in items if v > 0}

Eine Klassendefinition formatieren

Eingabe: class User:
  def __init__(self,name,email):
   self.name=name
    self.email=email
  def __repr__(self):
    return f"User({self.name})"
Ausgabe:
class User:
    def __init__(self, name, email):
        self.name = name
        self.email = email

    def __repr__(self):
        return f"User({self.name})"

FAQ

Welchen Python-Stil verwendet er?

Die meisten Builds folgen standardmäßig PEP 8, häufig über Black: 88-Zeichen-Zeilenbreite, doppelte Anführungszeichen für Strings, keine abschließenden Semikolons. Black ist meinungsstark – es entfernt die meisten Konfigurationsoptionen, um einen einheitlichen Stil im gesamten Projekt zu gewährleisten. autopep8 und yapf bieten mehr Optionen, falls du Flexibilität brauchst.

Spielt die Einrückung für den Formatter eine Rolle?

Ja – in Python definiert die Einrückung die Blockstruktur. Der Formatter respektiert bestehende Blockgrenzen; bei gemischten Tabs/Leerzeichen oder falschen Einrückungstiefen scheitert das Parsen, bevor die Formatierung läuft.

Korrigiert er die Import-Reihenfolge?

Black, autopep8 und yapf behandeln nur Whitespace. Zum Sortieren und Gruppieren von Imports nutze isort (oder ruff --fix). Manche Seiten kombinieren beides; lies in der Konfiguration nach, was tatsächlich angewandt wird.

Werden Type Hints unterstützt?

Ja, von modernen Parsern. Typannotationen an Funktionssignaturen, Variablen und Klassenattributen (PEP 526, 484, 612) werden korrekt formatiert. Ganz neue Syntax (PEP 695 generische Syntax in 3.12+) braucht einen aktuellen Parser; ältere Builds können stolpern.

Wird mein Code hochgeladen?

Nein. Die Formatierung läuft in deinem Browser über eine JavaScript-Implementierung des Python-AST. Eingefügter Code wird nicht übertragen.

Stimmt das Ergebnis mit black in meiner CI überein?

Nahe dran, aber nicht immer identisch. Verschiedene Black-Versionen formatieren leicht unterschiedlich (Black aktualisiert seine Regeln regelmäßig). Für CI-Konsistenz nutze lokal und in der CI dieselbe Black-Version; betrachte diese Seite als schnellen visuellen Check.

Warum werden lange Zeilen umgebrochen?

PEP 8 und Black streben ≤88 Zeichen pro Zeile an. Lange Ausdrücke, Funktionsaufrufe mit vielen Argumenten und verkettete Methodenaufrufe werden für die Lesbarkeit auf mehrere Zeilen verteilt. Passe die Zeilenbreite-Option an, wenn dein Team 100 oder 120 verwendet.