MINT lernen

Probe-Klassenarbeit

Eine komplette Probe-Klassenarbeit zum Programmieren mit Python mit 50 Punkten in 45 Minuten — mit automatischer Auswertung, Note und Erwartungshorizont.

Punkte0 / 50
Note—
Bearbeitet0 / 0
Bearbeitungszeit45 Minuten
AFB I

Wissen und Reproduzieren

16 Punkte
A1
Was erscheint in der Konsole?
AFB I 4 Punkte
name = "Lea"alter = 14print(name, "ist", alter)print(name + str(alter + 1))
a) Was gibt Zeile 3 aus? 2 P
b) Was gibt Zeile 4 aus? 2 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont: a) Mit Komma werden die Werte durch Leerzeichen getrennt: Lea ist 14 (2 P). b) alter + 1 = 15 wird mit str() zu Text und mit + ohne Leerzeichen angehängt: Lea15 (2 P). Ohne str() gäbe es einen TypeError.

A2
Datentypen zuordnen
AFB I 4 Punkte

Jeder Ausdruck liefert einen Wert. Bestimme seinen Datentyp.

Ordne jedem Ausdruck den Datentyp seines Ergebnisses zu. 4 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont: 2.5 → float, "2.5" → str (Anführungszeichen!), 10 / 2 → float (5.0), 10 // 2 → int (5), False → bool, int("7") → int. Punkte anteilig: 6 richtige Zuordnungen = 4 P.

A3
Operatoren auswerten
AFB I 4 Punkte

Berechne ohne Python, welchen Wert die Ausdrücke haben.

a) 17 // 3 1 P
b) 17 % 3 1 P
c) 2 + 3 * 2 ** 2 2 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont: a) 17 : 3 = 5 Rest 2, also 17 // 3 = 5 (1 P) b) 17 % 3 = 2 (1 P) c) Erst die Potenz 2 ** 2 = 4, dann 3 · 4 = 12, dann 2 + 12 = 14 (2 P).

A4
Fehlerarten erkennen
AFB I 4 Punkte

Jede Zeile steht allein in einem Programm und führt zu einer Fehlermeldung.

Ordne jeder Zeile die Fehlerart zu, die Python meldet. 4 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont: Zeile 1: das schließende Anführungszeichen fehlt → SyntaxError. Zeile 2: punkte wurde nie festgelegt → NameError. Zeile 3: „zwölf“ ist keine Ziffernfolge → ValueError. Zeile 4: Text und Zahl lassen sich nicht mit + verbinden → TypeError. Je 1 P.

AFB II

Zusammenhänge herstellen

22 Punkte
A5
Eine Wertetabelle anlegen
AFB II 6 Punkte

Verfolge das Programm mit einer Wertetabelle für a und b.

a = 1b = 0while a < 40:    b = b + a    a = a * 3print(a, b)
a) Wie oft wird der Schleifenrumpf ausgeführt? 2 P
b) Welchen Wert hat a am Ende? 2 P
c) Welchen Wert hat b am Ende? 2 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont: Wertetabelle (a | b): (1 | 0) → (3 | 1) → (9 | 4) → (27 | 13) → (81 | 40). Danach ist 81 < 40 falsch. a) 4 Durchläufe (2 P) b) a = 81 (2 P) c) b = 1 + 3 + 9 + 27 = 40 (2 P).

A6
Rückwärts zählen
AFB II 6 Punkte
wert = 0for i in range(10, 0, -3):    if i % 2 == 0:        wert = wert + i    else:        wert = wert - 1print(wert)
a) Wie oft läuft die Schleife? 2 P
b) Welchen Wert hat i im letzten Durchlauf? 2 P
c) Welche Zahl gibt das Programm aus? 2 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont: range(10, 0, −3) liefert 10, 7, 4, 1 — die 0 ist der Stoppwert. a) 4 Durchläufe (2 P) b) i = 1 (2 P) c) 10 gerade: 0 + 10 = 10; 7 ungerade: 9; 4 gerade: 13; 1 ungerade: 12 (2 P).

A7
Die Mannschaftsliste
AFB II 5 Punkte
team = ["Ali", "Ben", "Cem"]team.append("Dana")team.insert(0, "Eva")team.pop(2)print(team[1], team[-1], len(team))
a) Wie viele Elemente hat die Liste am Ende? 2 P
b) Was gibt Zeile 5 aus? 3 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont: Nach append: ["Ali", "Ben", "Cem", "Dana"]; nach insert(0, "Eva"): ["Eva", "Ali", "Ben", "Cem", "Dana"]; pop(2) entfernt Index 2, also „Ben“: ["Eva", "Ali", "Cem", "Dana"]. a) 4 Elemente (2 P) b) team[1] = Ali, team[-1] = Dana: Ali Dana 4 (3 P).

A8
Das Wort zerlegen
AFB II 5 Punkte

Gegeben ist wort = "KLASSENARBEIT".

a) Welchen Wert hat len(wort)? 1 P
b) Ordne jedem Ausdruck seinen Wert zu. 4 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont: Indizes: K0 L1 A2 S3 S4 E5 N6 A7 R8 B9 E10 I11 T12. a) 13 Zeichen (1 P) b) wort[0:6] = KLASSE (Index 6 = N gehört nicht dazu), wort[-4:] = BEIT, wort[7:].lower() = arbeit, wort[2] + wort[5] = A + E = AE (je 1 P).

AFB III

Verallgemeinern und beurteilen

12 Punkte
A9
print oder return?
AFB III 6 Punkte
def flaeche(a, b):    ergebnis = a * b    print(ergebnis)x = flaeche(3, 4)print(x)
Welche Aussagen über das Programm sind richtig? (mehrere Antworten richtig) 6 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont: Richtig sind 1, 3 und 5: Die Funktion zeigt 12 mit print an, gibt aber nichts zurück — x ist None, und print(x) gibt None aus. Mit return wäre x = 12 und nur die Zeile print(x) würde 12 ausgeben. ergebnis ist eine lokale Variable und existiert außerhalb der Funktion nicht (NameError). Je richtige Auswahl 2 P, Fehlklicks werden abgezogen.

A10
Das Quiz auswerten
AFB III 6 Punkte

Beim Quiz tippt Noah nacheinander Rom (mit Leerzeichen davor), 45 und JUPITER ein.

def pruefe(antwort, loesung):    if antwort.strip().lower() == loesung:        return True    return Falsefragen = ["Hauptstadt von Italien?", "5 * 8?", "Größter Planet?"]loesungen = ["rom", "40", "jupiter"]punkte = 0for i in range(len(fragen)):    antwort = input(fragen[i] + " ")    if pruefe(antwort, loesungen[i]):        punkte = punkte + 1prozent = punkte * 100 // len(fragen)print(punkte, prozent)
a) Wie viele Punkte erreicht Noah? 2 P
b) Welchen Wert hat prozent? 2 P
c) Wie viele Punkte wären es, wenn in Zeile 2 .strip() fehlen würde? 2 P
Lösung anzeigen (nach Auswerten freigeschaltet)

Erwartungshorizont: a) „ Rom“ wird durch strip() und lower() zu „rom“ ✓, „45“ ≠ „40“ ✗, „JUPITER“ wird zu „jupiter“ ✓: 2 Punkte (2 P). b) 2 · 100 // 3 = 200 // 3 = 66 — // schneidet ab, es wird nicht gerundet (2 P). c) Ohne strip() bleibt das Leerzeichen: „ rom“ ≠ „rom“, also nur noch 1 Punkt (2 P).

Ergebnis

Erreicht
0 / 50
Prozent
0 %
Note
—
AufgabeThemaPunkte

Notenschema

PunkteNoteBeurteilung
46 – 50 P1sehr gut
40 – 45 P2gut
30 – 39 P3befriedigend
22 – 29 P4ausreichend
12 – 21 P5mangelhaft
0 – 11 P6ungenügend