Software

Die 50 häufigsten Python Interview Fragen mit ausführlichen Antworten

Talha AslanTalha Aslan 18 Min. Lesezeit 1 Aufrufe

Python Interview Fragen sind kurze technische Fragen, mit denen Unternehmen prüfen, ob Sie das Verhalten der Sprache wirklich verstehen. In diesem Leitfaden habe ich die 50 Fragen, die mir am häufigsten begegnen, nach Themen sortiert. Zu jeder Frage gibt es eine knappe Antwort und, wo es hilft, ein kleines Codebeispiel. Es geht also nicht um Auswendiglernen, sondern um die Logik hinter jeder Antwort.

Ich betreue seit 2012 Webprojekte und stelle viele dieser Fragen selbst, wenn ich Entwickler für ein Team suche. Falls Sie sich für die Architektur interessieren, lesen Sie meinen Beitrag über Micro Frontends. Weitere technische Artikel finden Sie in der Kategorie Software.

Was sind Python Interview Fragen und was prüfen sie?

Python Interview Fragen sind technische Fragen zum Kernverhalten der Sprache, von Datentypen über objektorientierte Programmierung bis zu Generatoren und Nebenläufigkeit. Der Interviewer prüft damit nicht, ob Sie Syntax auswendig kennen, sondern ob Sie erklären können, warum Code so funktioniert und welches Werkzeug im Projekt passt.

Nach meiner Erfahrung kommen die Fragen in drei Schichten. Zunächst geht es um Sprachwissen: Liste gegen Tuple, Veränderbarkeit, Gültigkeitsbereiche. Danach folgt das Design: Decorator, Context Manager, Klassenaufbau. Schließlich kommen Performance und Nebenläufigkeit. Deshalb steigen die Gruppen unten von leicht nach schwer an. Alle Antworten beziehen sich auf Python 3. Das offizielle Verhalten finden Sie jederzeit in der Python Dokumentation.

Welche grundlegenden Python Interview Fragen kommen zuerst?

1. Ist Python eine interpretierte Sprache?

Teilweise. CPython übersetzt den Quellcode zunächst in Bytecode. Danach führt eine virtuelle Maschine diesen Bytecode aus. Es gibt also einen Übersetzungsschritt, allerdings keinen Maschinencode. Mit dieser Unterscheidung heben Sie sich von der schlichten Antwort „interpretiert“ ab.

2. Ist Python dynamisch oder stark typisiert?

Beides. Der Interpreter bestimmt den Typ einer Variablen erst zur Laufzeit, daher ist Python dynamisch. Andererseits löst "3" + 3 einen Fehler aus, denn Python wandelt Typen nicht stillschweigend um. Somit ist die Sprache auch stark typisiert.

3. Was ist PEP 8?

PEP 8 ist der offizielle Styleguide für Python. Er empfiehlt vier Leerzeichen zur Einrückung, Kleinbuchstaben mit Unterstrich für Funktionen und CapWords für Klassen. Wer ihn kennt, zeigt also, dass gemeinsamer Code lesbar bleibt.

4. Warum ist Einrückung in Python Pflicht?

Python trennt Codeblöcke nicht mit geschweiften Klammern, sondern mit Einrückung. Das heißt, die Einrückung gehört zur Syntax und ist keine reine Optik. Mischen Sie Tabs und Leerzeichen in einem Block, erhalten Sie deshalb einen TabError.

Was fragen Interviewer zu Datentypen?

5. Welche eingebauten Datentypen gibt es?

Für Zahlen nutzen Sie int, float und complex. Text speichern Sie als str, Wahrheitswerte als bool. Für Sammlungen gibt es list, tuple, set und dict. Zudem hat None einen eigenen Typ und steht für das Fehlen eines Wertes.

6. Was ist der Unterschied zwischen is und ==?

== vergleicht Werte, is vergleicht dagegen die Identität. Konkret fragt is, ob zwei Namen auf dasselbe Objekt im Speicher zeigen. Deshalb schreiben Sie bei der Prüfung auf None immer x is None.

a = [1, 2]
b = [1, 2]
print(a == b)  # True
print(a is b)  # False

7. Kann ein int in Python überlaufen?

Nein. Ganzzahlen in Python haben beliebige Genauigkeit und wachsen, solange der Speicher reicht. Daher sehen Sie keine Überlauffehler wie in C oder Java. Allerdings gilt das nicht für float, denn Gleitkommazahlen haben eine feste Größe.

8. Warum ergibt 0.1 + 0.2 nicht genau 0.3?

Weil ein float binär gespeichert ist und 0.1 im Binärsystem keine exakte Darstellung hat. Das Ergebnis lautet 0.30000000000000004. Für Geldbeträge nutzen Sie also das Modul decimal, für Vergleiche dagegen math.isclose.

Wie unterscheiden sich Liste, Tuple, Set und Dict?

Diese Gruppe kommt in fast jedem Gespräch vor. Zunächst die Übersicht:

TypGeordnet?Veränderbar?DuplikateTypische Nutzung
listJaJaErlaubtGeordnete Datensätze
tupleJaNeinErlaubtFeste Datensätze, Schlüssel
setNeinJaKeineDuplikate entfernen, Mitgliedschaft prüfen
dictEinfügereihenfolgeJaEindeutige SchlüsselSchneller Zugriff per Schlüssel

9. Was unterscheidet eine Liste von einem Tuple?

Eine Liste ist veränderbar, ein Tuple nicht. Folglich kann ein Tuple als Schlüssel in einem Dict dienen, eine Liste dagegen nicht. Zudem braucht ein Tuple etwas weniger Speicher.

10. Wann setzen Sie ein Set ein?

Immer dann, wenn Sie oft auf Mitgliedschaft prüfen. Ein in dauert bei einer Liste im Schnitt O(n), bei einem Set im Schnitt O(1). Außerdem entfernen Sie damit am schnellsten Duplikate.

11. Behalten Dicts ihre Reihenfolge?

Ja. Seit Python 3.7 garantiert die Sprache die Einfügereihenfolge. Trotzdem sollten Sie im Code deutlich machen, wenn Ihre Logik davon abhängt.

12. Was muss ein Schlüssel im Dict erfüllen?

Er muss hashbar sein. Das heißt, sein Hashwert ändert sich während seiner Lebensdauer nie; Strings, Zahlen und Tuples aus hashbaren Elementen erfüllen das.

Warum tauchen Fragen zur Veränderbarkeit so oft auf?

13. Was bedeuten mutable und immutable?

Ein mutable Objekt ändern Sie direkt an Ort und Stelle; Listen, Dicts und Sets verhalten sich so. Bei einem immutable Objekt erzeugt dagegen jede Änderung ein neues Objekt; dazu zählen Strings, Ganzzahlen und Tuples. Diese Trennung erklärt die meisten Überraschungen bei der Übergabe von Argumenten.

14. Warum ist eine Liste als Standardargument gefährlich?

Weil Python den Standardwert nur einmal erzeugt, nämlich bei der Definition der Funktion. Danach teilt sich jeder Aufruf dieselbe Liste. Das sichere Muster nutzt deshalb None:

def add(item, items=None):
    if items is None:
        items = []
    items.append(item)
    return items

15. Was unterscheidet eine flache von einer tiefen Kopie?

Eine flache Kopie dupliziert nur den äußeren Container; die inneren Objekte bleiben gemeinsam. Eine tiefe Kopie baut dagegen jedes verschachtelte Objekt neu auf. Bei verschachtelten Listen reicht copy.copy also nicht, Sie brauchen copy.deepcopy. Ich stelle diese Frage meist zusammen mit Frage 14, denn beide prüfen dasselbe Denkmodell.

Was fragen Interviewer zu Funktionen und Argumenten?

16. Wofür stehen *args und **kwargs?

*args sammelt zusätzliche Positionsargumente in einem Tuple. **kwargs sammelt Schlüsselwortargumente in einem Dict. Somit schreiben Sie Funktionen mit flexibler Signatur.

def summary(*args, **kwargs):
    print(args)    # (1, 2)
    print(kwargs)  # {'name': 'Ali'}

summary(1, 2, name="Ali")

17. Übergibt Python Argumente per Wert oder per Referenz?

Streng genommen weder noch. Python übergibt eine Objektreferenz. Die Funktion erhält also eine Kopie des Verweises auf das Objekt. Ändern Sie eine Liste innerhalb der Funktion, sieht der Aufrufer die Änderung. Binden Sie den Namen dagegen an ein neues Objekt, bleibt der Aufrufer unberührt.

18. Sind Funktionen Objekte erster Klasse?

Ja. Sie können eine Funktion einer Variablen zuweisen, an eine andere Funktion übergeben und aus einer Funktion zurückgeben. Genau darauf bauen Decorator auf, deshalb folgt oft eine Anschlussfrage.

19. Prüft Python Type Hints zur Laufzeit?

Nein. Der Interpreter ignoriert Type Hints zur Laufzeit; sie dienen der Dokumentation und statischen Analyse. Wenn Sie Prüfungen wollen, nutzen Sie ein Werkzeug wie mypy. Trotzdem machen Hints große Codebasen deutlich lesbarer.

Wie beantworten Sie Fragen zu Lambda und Comprehensions?

20. Was ist eine Lambda Funktion?

Eine Lambda ist eine anonyme Funktion aus genau einem Ausdruck. Meist übergeben Sie damit einen kurzen Schlüssel an Funktionen wie sorted oder max. Brauchen Sie mehr als eine Zeile, ist ein normales def allerdings lesbarer.

people = [("Ayse", 31), ("Can", 25)]
print(sorted(people, key=lambda p: p[1]))

21. Was unterscheidet eine List Comprehension von einer for Schleife?

Eine Comprehension erledigt dieselbe Arbeit in einer Zeile und ist oft schneller. Allerdings wird eine Comprehension mit drei verschachtelten Bedingungen schnell unlesbar. Dann kehren Sie besser zur klassischen Schleife zurück.

22. Wie wählen Sie zwischen map, filter und einer Comprehension?

Wenden Sie eine vorhandene Funktion an, ist map kurz und klar. Kombinieren Sie Bedingung und Umwandlung, liest sich eine Comprehension besser. Kurz gesagt entscheidet die Lesbarkeit, nicht die Geschwindigkeit.

Wie funktionieren Gültigkeitsbereiche und Closures?

23. Was ist die LEGB Regel?

LEGB beschreibt die Reihenfolge, in der Python einen Namen sucht: Local, Enclosing, Global, Built in. Zunächst prüft der Interpreter den lokalen Bereich, dann die umschließende Funktion, danach die Modulebene und schließlich die eingebauten Namen. Beim ersten Treffer stoppt er.

24. Wofür dienen global und nonlocal?

Mit global bindet eine Funktion einen Namen auf Modulebene neu. Mit nonlocal schreibt eine verschachtelte Funktion in eine Variable der umschließenden Funktion. Nutzen Sie beides sparsam, denn versteckter Zustand erschwert die Fehlersuche.

25. Was ist eine Closure?

Eine Closure ist eine innere Funktion, die sich Variablen aus ihrem Definitionsbereich merkt. Auch nach dem Ende der äußeren Funktion greift sie also weiter auf diese Werte zu.

def multiplier(n):
    def multiply(x):
        return x * n
    return multiply

double = multiplier(2)
print(double(5))  # 10

Wie bereiten Sie sich auf Fragen zur Objektorientierung vor?

In dieser Runde fragt der Interviewer oft auch nach Vererbung gegen Komposition. Meine kurze Antwort lautet: Bei einer „ist ein“ Beziehung wählen Sie Vererbung, bei einer „hat ein“ Beziehung dagegen Komposition.

26. Was unterscheidet __init__ von __new__?

__new__ erzeugt das Objekt, __init__ initialisiert es anschließend. Im Alltag schreiben Sie fast immer __init__. __new__ brauchen Sie vor allem, wenn Sie von unveränderlichen Typen erben oder ein Singleton bauen.

27. Was ist self und warum schreiben Sie es ausdrücklich?

self ist die Instanz, die die Methode aufruft. Python verlangt es als sichtbaren Parameter, weil explizit besser als implizit ist. Sie könnten einen anderen Namen wählen, allerdings ist self der Standard der Community.

28. Was unterscheidet classmethod und staticmethod?

Eine classmethod erhält die Klasse als erstes Argument und eignet sich daher für alternative Konstruktoren. Eine staticmethod erhält weder Klasse noch Instanz. Sie ist also eine normale Funktion, die logisch zur Klasse gehört.

29. Was ist die MRO?

Die MRO, also die Method Resolution Order, legt bei Mehrfachvererbung fest, aus welcher Klasse eine Methode stammt. Python berechnet sie mit dem Algorithmus der C3 Linearisierung. Sie sehen die Reihenfolge über MyClass.__mro__. Zudem folgt jeder Aufruf von super() genau dieser Reihenfolge.

Warum sind Dunder Methoden und das Datenmodell wichtig?

30. Was unterscheidet __str__ von __repr__?

__str__ liefert eine lesbare Ausgabe für Nutzer. __repr__ liefert dagegen eine eindeutige Darstellung für Entwickler. Ein gutes __repr__ zeigt Code, der das Objekt neu erzeugen könnte. Schreiben Sie nur eine der beiden, dann __repr__, denn ohne __str__ greift Python darauf zurück.

31. Was passiert mit __hash__, wenn Sie __eq__ definieren?

Definiert eine Klasse __eq__, aber kein __hash__, setzt Python __hash__ auf None. Folglich passen Ihre Objekte nicht mehr in ein Set und taugen nicht als Schlüssel. Merken Sie sich die Regel: Gleiche Objekte brauchen gleiche Hashwerte.

32. Was leistet eine Dataclass?

@dataclass erzeugt aus Felddefinitionen die Methoden __init__, __repr__ und __eq__. Somit sparen Sie in Klassen, die vor allem Daten tragen, viel Wiederholung.

from dataclasses import dataclass

@dataclass(frozen=True)
class Point:
    x: int
    y: int

Hier macht frozen=True das Objekt unveränderlich und damit hashbar. Alle Details liefert die offizielle Referenz zum Datenmodell.

Was prüfen Fragen zu Iteratoren und Generatoren?

33. Was unterscheidet ein Iterable von einem Iterator?

Ein Iterable ist alles, worüber Sie eine Schleife laufen lassen; es hat eine Methode __iter__. Ein Iterator liefert dagegen über __next__ das nächste Element und merkt sich seine Position. Eine Liste ist also iterierbar, aber kein Iterator; iter(my_list) liefert Ihnen einen.

34. Was ist ein Generator und warum spart er Speicher?

Ein Generator ist eine Funktion mit yield, die Werte erst bei Bedarf einzeln erzeugt. Sie hält nie das ganze Ergebnis im Speicher. Deshalb verarbeiten Sie damit auch Dateien mit Millionen Zeilen problemlos.

def lines(path):
    with open(path) as f:
        for line in f:
            yield line.strip()

35. Wofür dient yield from?

yield from gibt nacheinander alle Werte eines anderen Iterables weiter. Damit entfällt die manuelle Schleife in Ketten von Generatoren. Außerdem fängt es den Rückgabewert des inneren Generators auf.

Wie erklären Sie Decorator und Context Manager?

36. Was ist ein Decorator?

Ein Decorator ist eine Funktion, die eine andere Funktion annimmt, ihr Verhalten ändert und sie zurückgibt. Er eignet sich daher für übergreifende Aufgaben wie Logging, Zeitmessung und Rechteprüfung.

import functools, time

def timed(fn):
    @functools.wraps(fn)
    def wrapper(*a, **k):
        t = time.perf_counter()
        result = fn(*a, **k)
        print(fn.__name__, time.perf_counter() - t)
        return result
    return wrapper

37. Warum brauchen Sie functools.wraps?

Ohne diese Hilfe verdeckt der Wrapper Namen und Docstring der ursprünglichen Funktion. wraps kopiert diese Metadaten. Folglich zeigen Debugger und Dokumentationswerkzeuge den richtigen Namen.

38. Was ist ein Context Manager?

Ein Context Manager legt Code fest, der beim Betreten und Verlassen eines with Blocks läuft. Er garantiert Aufräumarbeiten wie das Schließen einer Datei oder das Freigeben einer Sperre, auch bei einem Fehler. Eigene Manager schreiben Sie mit __enter__ und __exit__ oder mit contextlib.contextmanager.

Welche Fragen zur Fehlerbehandlung sollten Sie erwarten?

39. Wie arbeiten try, except, else und finally zusammen?

try enthält den riskanten Code, except fängt den Fehler ab. else läuft nur, wenn kein Fehler auftrat. finally läuft dagegen in jedem Fall. Ich nutze else, um Code für den Erfolgsfall aus dem try Block herauszuhalten; so fange ich nicht versehentlich die falsche Ausnahme ab.

try:
    number = int(raw)
except ValueError:
    print("Keine Zahl")
else:
    print(number * 2)
finally:
    print("Fertig")

40. Warum ist ein nacktes except eine schlechte Gewohnheit?

Ein nacktes except: fängt alles ab, auch KeyboardInterrupt und SystemExit. Dadurch lässt sich das Programm nicht sauber stoppen, und der echte Fehler bleibt verborgen. Nennen Sie stattdessen die Ausnahme, die Sie erwarten. Bei Bedarf definieren Sie eine eigene Ausnahmeklasse.

Was sollten Sie über GIL und Nebenläufigkeit wissen?

41. Was ist der GIL?

Der GIL, also der Global Interpreter Lock, erlaubt in CPython nur einem Thread gleichzeitig, Python Bytecode auszuführen. Er vereinfacht die Speicherverwaltung. Allerdings verhindert er, dass rechenintensive Threads parallel laufen. Das Python Glossar erklärt den Begriff knapp und klar.

42. Wie wählen Sie zwischen threading, multiprocessing und asyncio?

Für wartende Aufgaben wie Netzwerkaufrufe oder Dateizugriffe reichen threading oder asyncio, denn während des Wartens gibt ein Thread den GIL frei. Für rechenintensive Aufgaben nutzen Sie dagegen multiprocessing, weil jeder Prozess einen eigenen Interpreter und einen eigenen GIL hat. Asyncio ist zudem die leichteste Wahl für Tausende gleichzeitige Verbindungen in einem Thread.

43. Verschwindet der GIL?

Teilweise. Mit PEP 703 brachte Python 3.13 einen experimentellen Build ohne GIL, den sogenannten free threaded Build. Der Standard von CPython behält den GIL allerdings, und viele C Erweiterungen holen noch auf. Dieses Wissen zeigt, dass Sie die Sprache verfolgen; für Entscheidungen im Produktivbetrieb ist es aber noch zu früh.

Eine häufige Anschlussfrage lautet: Warum helfen Threads trotz GIL? Die Antwort ist einfach: Während Netzwerk und Festplatte warten, ist die Sperre frei, also überlappen sich diese Wartezeiten.

Was fragen Interviewer zu Modulen, Paketen und virtuellen Umgebungen?

44. Was bewirkt if __name__ == "__main__"?

Starten Sie eine Datei direkt, hat __name__ den Wert "__main__". Importiert eine andere Datei sie, enthält __name__ dagegen den Modulnamen. Diese Prüfung verhindert also, dass Test oder Kommandozeilencode beim Import startet.

45. Warum nutzen Sie eine virtuelle Umgebung?

Eine virtuelle Umgebung hält die Abhängigkeiten jedes Projekts in einem eigenen Ordner. Daher kann ein Projekt Django 4 nutzen und ein anderes Django 5, ohne dass es Konflikte gibt. Das Modul venv aus der Standardbibliothek reicht dafür aus.

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Was fragen Interviewer zu Tests und Codequalität?

Testfragen münden oft in eine praktische Aufgabe: „Welche Tests würden Sie für diese Funktion schreiben?“ Eine starke Antwort deckt mehr als den Normalfall ab, nämlich auch leere Eingaben, falsche Typen und Grenzwerte. Deshalb sollten Sie zu jedem Beispiel mindestens drei Testideen parat haben.

46. Was unterscheidet unittest und pytest?

unittest gehört zur Standardbibliothek und setzt auf Klassen. pytest ist ein externes Paket, allerdings schreiben Sie dank einfacher assert Anweisungen, Fixtures und vieler Plugins weniger Code. Die meisten Teams, mit denen ich arbeite, bevorzugen heute pytest. Zudem führt pytest vorhandene unittest Suiten aus.

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

def test_add():
    assert add(2, 3) == 5

47. Wann brauchen Sie einen Mock?

Spricht der getestete Code mit einem Zahlungsdienst, einer Datenbank oder einer externen API, wollen Sie im Test keine echten Aufrufe. unittest.mock ersetzt diese Abhängigkeit durch ein Scheinobjekt. Außerdem prüfen Sie damit, ob Ihr Code den Aufruf mit den richtigen Parametern ausgeführt hat. Somit bleiben Tests schnell und wiederholbar.

Wie beantworten Sie Fragen zu Performance und Speicher?

48. Wie funktioniert die Garbage Collection in Python?

CPython setzt vor allem auf Referenzzählung. Verweist nichts mehr auf ein Objekt, gibt Python es sofort frei. Allerdings erkennt die Referenzzählung keine zyklischen Verweise. Deshalb läuft zusätzlich ein generationeller Garbage Collector. Mit dem Modul gc können Sie ihn beobachten.

49. Wie beschleunigen Sie langsamen Python Code?

Zuerst messen, dann korrigieren. Ein Profil überrascht oft mehr als jede Vermutung. So gehe ich konkret vor:

  1. Mit cProfile die langsamste Funktion finden.
  2. Algorithmus und Datenstruktur prüfen; ein Set statt einer Suche in der Liste nutzen.
  3. Wiederholte Berechnungen mit functools.lru_cache zwischenspeichern.
  4. Numerische Arbeit auf vektorisierte Bibliotheken wie NumPy verlagern.
  5. Den Engpass bei Bedarf in eine C Erweiterung oder einen eigenen Prozess auslagern.

50. Wofür dient __slots__?

__slots__ legt fest, welche Attribute eine Instanz haben darf, und entfernt das __dict__ jeder Instanz. Erzeugen Sie Millionen kleiner Objekte, sinkt der Speicherbedarf spürbar. Andererseits können Sie einer Instanz später keine neuen Attribute mehr hinzufügen.

Wie lernen Sie Python Interview Fragen am besten?

Statt auswendig zu lernen, probieren Sie jede Frage auf dem eigenen Rechner aus. Lesen Sie zum Beispiel Frage 14 nicht nur, sondern erzeugen Sie den Fehler mit der Standardliste selbst. Diese Erfahrung macht Ihre Antwort im Gespräch deutlich überzeugender. Außerdem hilft es, jede Antwort nach dem Schema „was, warum, wann“ aufzubauen.

Diesen Vorbereitungsplan empfehle ich:

  • In Woche eins testen Sie Datentypen, Gültigkeitsbereiche und Funktionen im Code.
  • Danach bauen Sie in Woche zwei ein kleines Projekt mit OOP, Decorator und Generatoren.
  • Woche drei gehört der Nebenläufigkeit und der Performance.
  • Zum Schluss üben Sie in Woche vier das laute Antworten, jeweils in höchstens zwei Minuten.

Auch die Wahl der Quellen zählt. Das Tutorial der offiziellen Dokumentation vermittelt die Grundlagen in der richtigen Reihenfolge. Kleine Übungsseiten helfen beim Training von Algorithmen. Trotzdem sollten Sie jede Lösung, die Sie dort sehen, in eigenen Worten erklären. Nach einer Aufgabe zu Generatoren sagen Sie also laut, wie sich der Speicher mit einer Liste verändern würde.

Zudem empfehle ich eine einfache Notizgewohnheit. Schreiben Sie jeden Tag ein Konzept, bei dem Sie falsch lagen, in einem Satz auf. Nach vier Wochen haben Sie eine kurze Liste Ihrer eigenen Schwachstellen. Am Morgen des Gesprächs genügt dann ein Blick auf diese Liste.

Diese Zeiträume sind ein Startpunkt aus meiner Praxiserfahrung, keine Garantie. Passen Sie sie an Ihren Hintergrund an.

Welche Fehler machen Kandidaten im Gespräch am häufigsten?

Den häufigsten Fehler sehe ich in meinen eigenen Gesprächen: Kandidaten kennen die richtige Antwort, können aber den Grund nicht erklären. „Tuples sind unveränderlich“ reicht nicht. Sie sollten auch sagen, warum sie deshalb als Schlüssel im Dict funktionieren. Der zweite typische Fehler ist Raten bei einer unbekannten Frage und das anschließende Verteidigen der falschen Antwort. Wissen Sie etwas nicht, sagen Sie es offen und erklären Sie, wie Sie es herausfinden würden.

Weitere häufige Fehler sind:

  • Schweigend programmieren und den Interviewer im Unklaren lassen.
  • Nie nach Randfällen fragen, etwa nach einer leeren Liste oder None als Eingabe.
  • Die Komplexität auslassen und den Unterschied zwischen O(n) und O(n²) nicht nennen.
  • Unlesbaren Code mit Namen schreiben, die PEP 8 ignorieren.

Noch ein Tipp: Stellen Sie dem Interviewer ruhig Rückfragen. Fragen Sie nach der Größe der Eingabe, nach der erwarteten Performance oder nach dem Verhalten im Fehlerfall. Solche Fragen zeigen, wie Sie in einem echten Projekt arbeiten. Zudem gewinnen Sie damit ein paar Sekunden Bedenkzeit.

Kurz gesagt sucht der Interviewer kein perfektes Lexikon. Er sucht jemanden, mit dem er zusammenarbeiten kann und der Gedanken klar vermittelt.

Wo hilft Python in echten Webprojekten?

Python ist nicht nur eine Sprache für Data Science, und viele Python Interview Fragen spiegeln das wider. In meinen Projekten begegnet mir Python vor allem bei Automatisierung und Reporting. Bei einem Relaunch prüft zum Beispiel ein Skript Hunderte Weiterleitungen und macht aus Tagen Handarbeit wenige Minuten. Einzelne Adressen prüfen Sie dagegen mit dem Redirect Checker.

Ebenso schreiben Sie mit Python kleine Werkzeuge, die die Ladezeit regelmäßig messen und protokollieren. Wie die Ladezeit die Sichtbarkeit beeinflusst, erkläre ich im Beitrag zu Ladezeit und SEO. Die Messmethode beschreibe ich im Leitfaden zu Lighthouse. Außerdem eignen sich Crawling Skripte gut, um technische SEO Prüfungen zu automatisieren.

Ein weiteres Beispiel stammt aus der Contentarbeit. Ein einfaches Skript, das Länge von Titel und Beschreibung auf Hunderten Seiten prüft, beschleunigt die Qualitätskontrolle vor dem Livegang deutlich. Für eine einzelne Seite reicht der Wörterzähler; für Massenarbeit brauchen Sie dagegen eine Sprache wie Python. Somit zahlt sich das Wissen aus dem Interview auch im Alltag aus.

Was kommt nach diesen Python Interview Fragen?

Beantworten Sie diese 50 Fragen souverän, sind Sie für Gespräche auf Einstiegs und mittlerem Niveau bereit. Danach geht es darum, dieses Wissen in einem echten Projekt zu zeigen. Ein kleines, aber sauberes Projekt auf GitHub sagt mehr als eine lange Liste von Zertifikaten. Achten Sie daher auf README, Tests und eine klare Struktur.

Suchen Sie Entwickler oder planen Sie ein Webprojekt mit Python im Backend, klären wir den technischen Bedarf gern gemeinsam. Wie ich arbeite, sehen Sie auf der Seite zum Webdesign. Alternativ schreiben Sie mir direkt über die Kontaktseite.

Häufig gestellte Fragen

Wie lange dauert die Vorbereitung auf ein Python Interview?
Mit soliden Grundlagen sind vier Wochen meist ein guter Start. Die ersten zwei Wochen gehören den Sprachgrundlagen und OOP, die dritte der Nebenläufigkeit und Performance, die letzte dem lauten Antworten. Das ist ein Vorschlag aus meiner Praxiserfahrung, keine Garantie; je nach Hintergrund brauchen Sie weniger oder mehr Zeit.
Gibt es in Python Interviews einen Programmiertest?
Bei den meisten Unternehmen ja. Meist kommt er als Liveaufgabe in einem geteilten Editor oder als kleine Aufgabe für zu Hause. Neben dem richtigen Ergebnis achtet der Interviewer auf lesbare Namen, den Umgang mit Randfällen und eine Aussage zur Komplexität. Lautes Denken beim Programmieren hinterlässt dabei einen besseren Eindruck als stilles Tippen.
Unterscheiden sich Fragen für Junior und Senior Rollen?
Ja, deutlich. Gespräche für Einsteiger drehen sich um Datentypen, Funktionen und grundlegende OOP. Bei Senior Rollen stehen dagegen GIL, Nebenläufigkeit, Speicherverwaltung, Architekturentscheidungen und Teststrategie im Vordergrund. Zudem sollen erfahrene Kandidaten eine schwierige technische Entscheidung aus einem früheren Projekt samt Abwägungen nachvollziehbar erklären.
Fragen Interviewer noch nach Python 2?
Selten. Der offizielle Support für Python 2 endete am 1. Januar 2020, deshalb laufen fast alle neuen Projekte auf Python 3. Teams, die eine alte Codebasis migrieren, fragen eventuell nach Unterschieden wie der print Anweisung oder der Ganzzahldivision. Ansonsten können Sie Ihre Vorbereitung komplett auf Python 3 und seine aktuellen Funktionen ausrichten.
Was tun, wenn ich eine Antwort nicht weiß?
Bleiben Sie ruhig und sagen Sie ehrlich, dass Sie es nicht wissen. Gehen Sie dann vom nächstliegenden Konzept aus, das Sie kennen, und erklären Sie Ihren Gedankengang. Erwähnen Sie auch, dass Sie die Dokumentation prüfen oder ein kleines Beispiel testen würden. Interviewer schätzen einen klaren Denkprozess mehr als eine selbstbewusst verteidigte falsche Antwort.
#Python#Vorstellungsgespräch#Entwicklerkarriere#OOP#Generatoren#Decorator#GIL
Teilen:
Talha Aslan
Talha Aslan

Google Partner und Experte für digitales Marketing. Seit 2012 praktisch in SEO, Google Ads, Webdesign und E-Commerce Projekten; jeder Beitrag hier stammt aus dieser Erfahrung.

Nächstes Projekt

Sprechen wir über Ihr Projekt.

Keine Zwischenhändler, keine Ebenen: Sie sprechen direkt mit dem Experten, der die Arbeit macht. Das Erstgespräch ist kostenlos, ich höre zu und melde mich mit einer klaren Roadmap.

WhatsApp Jetzt anrufen