Python-Interviewfragen, mit Antworten, die du ausführen kannst

Python-Interviews mischen ein paar Programmier-Aufwärmaufgaben mit Fragen dazu, wie sich die Sprache verhält. Hier sind die Fragen, die am häufigsten vorkommen. Jedes Beispiel unten wurde ausgeführt, und die gezeigte Ausgabe ist exakt, sodass du dich darauf verlassen kannst, wenn du es laut erklärst.

Einen String umkehren

Slicing mit einer Schrittweite von -1 läuft den String rückwärts durch. Es funktioniert bei jeder Sequenz, auch bei Listen.

print("python"[::-1])

Ausgabe:

nohtyp

Enthält eine Liste Duplikate?

Ein Set speichert jeden Wert nur einmal. Ist das Set kürzer als die Liste, wurde etwas wiederholt. Sag laut, was es kostet: Das ist ein einziger Durchlauf, und die Elemente müssen hashbar sein.

numbers = [1, 2, 3, 2, 1]
print(len(numbers) != len(set(numbers)))

Ausgabe:

True

Sind zwei Wörter Anagramme?

Zwei Wörter sind Anagramme, wenn ihre sortierten Buchstaben gleich sind.

print(sorted("listen") == sorted("silent"))

Ausgabe:

True

Listen gegen Tupel

Listen können nach ihrer Erstellung verändert werden, Tupel nicht. Tupel werden für feste Gruppen verwendet, etwa einen Punkt, und weil sie sich nicht ändern, können sie Dictionary-Schlüssel sein.

point = (3, 4)
try:
    point[0] = 9
except TypeError:
    print("tuples cannot change")

Ausgabe:

tuples cannot change

is gegen ==

== prüft, ob zwei Werte gleich sind. is prüft, ob es im Speicher genau dasselbe Objekt ist. Zwei getrennte Listen mit gleichem Inhalt sind gleich, aber nicht dasselbe.

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

Ausgabe:

True
False

Die Falle des veränderlichen Standardarguments

Ein Standardwert wird einmal erstellt, wenn die Funktion definiert wird, nicht bei jedem Aufruf. Mit einer Liste als Standardwert teilen sich alle Aufrufe dieselbe Liste. Das ist die berühmteste Python-Falle.

def add_item(item, items=[]):
    items.append(item)
    return items

print(add_item("a"))
print(add_item("b"))

Ausgabe:

['a']
['a', 'b']

Die Lösung: None verwenden

Verwende None als Standardwert und erstelle die Liste innerhalb der Funktion. Jetzt beginnt jeder Aufruf neu.

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

print(add_item("a"))
print(add_item("b"))

Ausgabe:

['a']
['b']

Häufige Fragen

Welche Python-Themen decken Interviews am häufigsten ab?
Strings, Listen, Dictionarys und Sets für die Programmier-Aufwärmaufgabe, dann Funktionen, Fehler, Klassen und wie sich veränderliche und unveränderliche Typen verhalten. Kenne die Kosten der gängigen Operationen und begründe deine Wahl der Datenstruktur.
Soll ich Lösungen auswendig lernen?
Verstehe lieber die Idee hinter jeder Lösung. Wenn du erklären kannst, warum ein Set Duplikate in einem Durchlauf findet, kannst du auch die nächste Variante lösen, die du noch nie gesehen hast.
Wie übe ich, meine Antwort zu erklären?
Führe jedes Beispiel aus und sag dann laut, was es ausgibt und warum, bevor du die Erklärung liest. Interviewer achten auf deine Begründung genauso sehr wie auf den Code.

Übe es