Home
PEP 8 Spickzettel: Regelübersicht (Ruff / Pyright)
March 2026 (208 Words, 2 Minutes)
reference
code-quality
pep8
ruff
pyright
cheatsheet
Kompakte Übersicht der wichtigsten PEP 8-/Qualitäts-Regeln mit ihren Ruff-Codes. Gedacht zum parallelen Öffnen neben einer Aufgabe (z. B. im Testat): Code finden, Regelcode in dieser Tabelle nachschlagen.
Zugrunde gelegt wird die Kurs-Konfiguration: Zeilenlänge 88, Regelgruppen E, W, F, N (pycodestyle, Pyflakes, pep8-naming).
| Code | Kategorie | Regel | Beispiel (falsch → richtig) |
|---|---|---|---|
| E225 | Leerzeichen | Fehlendes Leerzeichen um Operator | x=5 → x = 5 |
| E231 | Leerzeichen | Fehlendes Leerzeichen nach Komma | f(a,b) → f(a, b) |
| E262 | Kommentare | Inline-Kommentar muss mit '# ' beginnen | x = 1 ## text → x = 1 # text |
| E265 | Kommentare | Block-Kommentar muss mit '# ' beginnen | #text → # text |
| E301 | Leerzeilen | Erwartete 1 Leerzeile (zwischen Methoden), 0 gefunden | 1 Leerzeile zwischen Methoden einer Klasse |
| E302 | Leerzeilen | Erwartete 2 Leerzeilen vor Top-Level-Definition | 2 Leerzeilen vor Funktionen/Klassen auf Modulebene |
| E305 | Leerzeilen | Erwartete 2 Leerzeilen nach Funktion/Klasse | 2 Leerzeilen nach einer Definition vor weiterem Code |
| E401 | Imports | Mehrere Imports in einer Zeile | import os, sys → separate Zeilen |
| E501 | Zeilenlänge | Zeile zu lang (> 88 Zeichen) | Zeile umbrechen oder kürzen |
| E701 | Anweisungen | Mehrere Anweisungen auf einer Zeile (Doppelpunkt) | if x: return y → separate Zeilen |
| E711 | Vergleiche | Vergleich mit None muss 'is' / 'is not' sein | x == None → x is None |
| E712 | Vergleiche | Vergleich mit True/False vermeiden | x == True → if x: |
| E721 | Vergleiche | Typen nicht mit '==' vergleichen | type(x) == int → isinstance(x, int) |
| E722 | Fehlerbehandlung | Kein nacktes except: verwenden |
except: → except ValueError: |
| E741 | Benennung | Mehrdeutiger Name (l, O, I) |
l = 5 → count = 5 |
| F401 | Imports | Modul importiert, aber nie verwendet | Ungenutzten Import entfernen |
| F841 | Variablen | Lokale Variable zugewiesen, aber nie verwendet | Ungenutzte Variable entfernen |
| N801 | Benennung | Klassenname sollte CapWords/PascalCase sein | class my_class → class MyClass |
| N802 | Benennung | Funktions-/Methodenname sollte snake_case sein | def MyFunc() → def my_func() |
| N803 | Benennung | Argumentname sollte snake_case sein | def f(myArg) → def f(my_arg) |
| N806 | Benennung | Variable in Funktion sollte snake_case sein | myVar = 5 → my_var = 5 |
| N816 | Benennung | Variable im globalen Scope nicht mixedCase | maxSize = 100 → max_size / MAX_SIZE |