P
prepair.app
Interview starten →
EnglishУкраїнськаРусскийDeutsch
🐍

Junior Python BackendPython-Backend-Interviewfragen

Junior · keine Erfahrung / unter 1 Jahr

Python-Backend-Interviews decken die Interna der Sprache, asynchrone Programmierung, Django oder FastAPI und den Umgang mit Datenbanken ab. Die folgenden Fragen kommen am häufigsten vor, jeweils mit einer Musterantwort. Junior: Grundlagentheorie, Definitionen und einfache Praxisfälle.

Probier es aus — kein Konto nötig
Deine Frage wird vorbereitet…

Themen zur Vorbereitung

Datentypen und Strukturen
Decorators und Generatoren
GIL und Nebenläufigkeit
asyncio und async/await
Django / FastAPI
ORM und SQL-Optimierung

7 Fragen auf Junior-Niveau mit Antworten

1

Was ist der Unterschied zwischen einer Liste und einem Tupel, und wann spielt das eine Rolle?

Antwort

Listen sind mutable, Tupel nicht, und die Konsequenz, die man leicht vergisst: Immutability macht Tupel hashbar — ein Tupel kann also ein Dictionary-Key sein, eine Liste nicht. Ein Tupel nutzt man, wenn Größe und Bedeutung jeder Position feststehen, etwa eine Koordinate oder eine Datenbankzeile, eine Liste, wenn man gleichartige Elemente sammelt. Ein Tupel signalisiert außerdem Absicht: Es sagt dem Leser, dass hier niemand etwas anhängen wird.

2

Was passiert, wenn man ein mutable Objekt als Default-Argument verwendet?

Antwort

Der Default wird einmal ausgewertet, beim Definieren der Funktion, nicht bei jedem Aufruf — ein Listen- oder Dict-Default wird also von jedem Aufruf geteilt und sammelt zwischen ihnen Zustand an. Der Fix ist, als Default None zu setzen und das Objekt im Funktionskörper zu erzeugen. Das ist der mit Abstand häufigste Python-Bug, der ein Code-Review übersteht, weil die Funktion isoliert betrachtet korrekt aussieht.

3

Was ist der Unterschied zwischen is und ==?

Antwort

== fragt, ob zwei Objekte denselben Wert haben; is fragt, ob es dasselbe Objekt im Speicher ist. Bei kleinen Integers und kurzen Strings stimmen sie zufällig überein, weil CPython diese cacht, weshalb der Fehler unbemerkt bleibt, bis ein Wert über den Cache-Bereich hinauswächst. Die praktische Regel: is nur für None, True und False, == für alles andere.

4

Erkläre, wie ein Dictionary einen Key findet.

Antwort

Es hasht den Key, um einen Bucket zu wählen, und vergleicht dann per Gleichheit, um Kollisionen innerhalb dieses Buckets aufzulösen. Daraus folgen zwei Dinge: Der Key muss hashbar sein, weshalb eine Liste keiner sein kann, und wenn man __eq__ auf einer Klasse überschreibt, muss man auch __hash__ überschreiben — sonst landen als gleich verglichene Instanzen in unterschiedlichen Buckets und verhalten sich in Sets und Dicts falsch.

5

Was unterscheidet eine List Comprehension von einem Generator-Ausdruck?

Antwort

Eine Comprehension in eckigen Klammern baut sofort die gesamte Liste im Speicher auf; derselbe Ausdruck in runden Klammern liefert einen Generator, der Elemente einzeln liefert. Bei einer Million Zeilen alloziert die erste Variante eine Million Objekte, die zweite jeweils eines nach dem anderen. Den Generator nutzt man, wenn man nur einmal iteriert, die Comprehension, wenn man das Ergebnis mehrfach braucht oder seine Länge kennen muss.

6

Was macht jeweils try / except / else / finally?

Antwort

try enthält den riskanten Code, except behandelt eine bestimmte Exception, else läuft nur, wenn nichts geworfen wurde, und finally läuft in jedem Fall und ist der Ort für Cleanup. else existiert, damit der try-Block so klein wie möglich bleibt — Code, der nicht fehlschlagen kann, gehört nicht hinein, sonst würde ein breites except Fehler aus Zeilen verschlucken, die man nie absichern wollte.

7

Was machen *args und **kwargs?

Antwort

*args sammelt zusätzliche positionale Argumente in einem Tupel, **kwargs sammelt zusätzliche Keyword-Argumente in einem Dict. Sie erlauben es einem Wrapper, eine beliebige Signatur entgegenzunehmen und unverändert weiterzureichen, weshalb sie in praktisch jedem Decorator auftauchen. In gewöhnlichen Funktionen versteckt ihr Überbeanspruchen die eigentliche Signatur sowohl vor dem Leser als auch vor Type-Checkern.

🦎

Antworten lesen reicht nicht

Im echten Interview sprichst du unter Druck. Cam stellt genau diese Fragen, bewertet jede Antwort und zeigt dir genau, was du verbessern musst.

Junior Python Backend-Interview üben →
Kostenlos · 3 Interviews im Monat

Weitere Level — Python Backend

Middle Python BackendSenior Python BackendAlle Python Backend-Fragen

Weitere Spezialisierungen

🔍Junior QA Manual🤖Junior QA AutomationJunior Java Backend🐘Junior PHP-Backend🦫Junior Go-Backend🟢Junior Node.js-Backend💎Junior Ruby on Rails🔷Junior C++🟨Junior JavaScript⚛️Junior React Frontend