Programmieren für die Prüfung: Python-Antworten, die Punkte bringen
Wie man Python-Code in Prüfungen schreibt, der tatsächlich volle Punktzahl erreicht — Struktur, Randfälle und Zeitmanagement unter Druck.
Prüfer führen deinen Code nicht zwanzig Minuten durch einen Debugger. Sie lesen ihn einmal, vielleicht zweimal, und prüfen ihn gegen ein Bewertungsschema. Eine funktionsfähige Lösung, die das Bewertungsschema ignoriert, kann immer noch Punkte verlieren, während eine etwas raue, die jeden Kontrollpunkt erfüllt, höher bewertet werden kann. Python für eine Prüfung zu schreiben ist eine andere Fähigkeit als Python für ein echtes Projekt zu schreiben, und es lohnt sich, separat zu trainieren.
Lies das Bewertungsschema, bevor du das Problem zweimal liest
Die meisten Programmiertests — AP CS A-Stil Kurzantwort-Fragen, universitäre Zwischenprüfungen, Coding-Bootcamp-Bewertungen — veröffentlichen Teilpunkt-Regeln. Eine typische Rubrik-Zeile sieht so aus: "1 Punkt für korrekte Schleifenstruktur, 1 Punkt für korrekten Rückgabewert, 1 Punkt für Behandlung des leeren Listen-Falls." Wenn du eine dichte Einzeiler schreibst, die die richtige Antwort gibt, aber eine explizite Schleife überspringst, werden dich einige Prüfer abziehen, obwohl die Ausgabe korrekt ist.
Bevor du etwas tippst, identifiziere die Teile, die ein Prüfer wahrscheinlich separat prüft:
- Funktionssignatur passt genau zu dem, was gefordert wurde (Name, Parameterreihenfolge, Rückgabetyp)
- Basisfall und rekursiver Fall, falls Rekursion erwartet wird
- Schleifengrenzen (Off-by-one-Fehler sind der häufigste Punktverlust)
- Randfälle: leere Eingabe, einelementige Eingabe, negative Zahlen, Duplikate
Schreib diese zuerst als Kommentare. # handle empty list, # base case: n == 0. Das kostet zehn Sekunden und garantiert, dass du den Fall nicht vergisst, den ein Prüfer speziell sucht.
Strukturiere Code so, dass Teilpunkte sichtbar sind
Vergleiche zwei Antworten auf "schreib eine Funktion, die die zweitgrößte Zahl in einer Liste zurückgibt":
def second_largest(nums):
return sorted(nums)[-2]
def second_largest(nums):
if len(nums) < 2:
return None
largest = second = float('-inf')
for n in nums:
if n > largest:
second = largest
largest = n
elif n > second and n != largest:
second = n
return second
Die erste ist für gut-formierte Eingaben korrekt, aber stürzt bei einer Liste mit weniger als zwei Elementen ab und gibt die falsche Antwort bei Duplikaten wie [5, 5, 3] (gibt 5 zurück, je nach Spezifikation möglicherweise falsch). Die zweite ist länger, aber jede Rubrik-Zeile — Randfall, korrekte Logik, korrekter Rückgabewert — ist explizit und bekommt ihre eigene Zeile, die ein Prüfer abhaken kann. In einer zeitgesteuerten Prüfung erzielt die zweite Version fast jedes Mal höhere Punkte, obwohl sie länger zum Tippen dauert.
Optimiere nicht vorzeitig, hinterlasse aber auch keine offensichtlichen Fehler
Prüfungsfragen testen Big-O-Wissen selten, es sei denn, sie sagen es direkt. Wenn die Aufgabe sagt "schreib eine Funktion, die Duplikate findet", ist eine verschachtelte Schleife bei O(n²) in Ordnung, es sei denn, die Aufgabe spezifiziert große Eingaben oder fordert eine effiziente Lösung. Prüfungszeit darauf zu verwenden, zu einem mengenbasierten O(n)-Ansatz zu konvertieren, wenn er nicht gefordert wurde, ist Zeit, die du nicht zurückbekommst.
Aber einige Fehler kosten dich immer, unabhängig vom Bewertungsschema:
==stattisinkonsistent verwenden, was zu Logikfehlern führt (selten bei Python-Prüfungen, aber taucht in vergleichsreichen Fragen auf)- Eine Liste mutieren, während man über sie iteriert —
for x in lst: lst.remove(x)ist eine klassische Prüfungsfalle, die stillschweigend falsche Ausgabe produziert returnvergessen und stattdessen drucken — viele Autograder prüfen Rückgabewerte, nicht stdout- Off-by-one in
range()—range(len(nums))vsrange(len(nums) - 1)ist es wert, jedes Mal zu überprüfen
Teste deinen Code von Hand, bevor du ihn einreichst
Bei Papiertests und den meisten In-Browser-Coding-Tests kannst du den Code nicht ausführen. Wähle ein kleines Beispiel und verfolge es Zeile für Zeile, schreib die Variablenwerte auf, während du gehst. Das fängt vielleicht 80% der Logikfehler in weniger als zwei Minuten, und es ist das Wertvollste, das du mit übrig gebliebener Zeit tun kannst.
Bei rekursiven Funktionen speziell, verfolge mindestens zwei Ebenen tief und schreib explizit auf, dass der Basisfall erreicht ist. Prüfer geben oft einen Punkt dafür, dass der Basisfall korrekt endet, separat von dem Punkt dafür, dass der rekursive Fall korrekt ist.
Verwalte die Uhr als Ressource, nicht als Nachgedanke
Wenn ein Kurzantwort-Bereich 9 Punkte über drei Teilfragen wert ist, plane ungefähr gleiche Zeit ein und gib auf, wenn du über dieses Budget hinaus festsitzt — eine halb geschriebene, aber fast korrekte Teilfrage (b) ist mehr reine Punkte wert als ein perfekter Teil (a) und ein leerer Teil (c). Schreib eine Stub-Funktion mit der richtigen Signatur und einem pass oder einer Vermutung, auch wenn du die Logik nicht beenden kannst; eine korrekte Signatur allein ist manchmal selbst einen Rubrik-Punkt wert.
Für mehr über sauberen, testbaren Python außerhalb des Prüfungsraums und Datenstrukturen, die in diesen Fragen ständig auftauchen, sieh dir die zugehörigen Python- und Computer-Science-Segmente auf Korra Studio an.
Mit KI-Unterstützung geschrieben, von Michal Pilch (CISSP), Korra Studio, überprüft und veröffentlicht.
Das ist eine Notiz aus der Korra-Studio-Wissensdatenbank — die Plattform verbindet jedes Thema mit 1-zu-1-Mentoring.
Kostenlos startenarrow_forward