3. Prüfungsvorbereitung

Kursinhalte
- Zeitansatz Teil 1: 20 Minuten
- Zeitansatz Teil 2: 15 Minuten
- Zeitansatz Teil 3: 45 Minuten
Teil 1 – Fragen
Mögliche Gesamtpunktzahl: 40
Bewertung: Jede richtige Antwort ergibt einen Punkt.
Verfügbare Zeit: 20 Minuten
Erlaubte Hilfsmittel: Keine Hilfsmittel erlaubt
Kreise die richtige Antwort ein. Es ist jeweils genau eine Antwort richtig.
-
Was ist das Ergebnis des folgenden Codes?
print("Py" * 3)- Py3
- PyPyPy
- Py Py Py
- Es entsteht ein Fehler.
-
Welcher Variablenname ist in Python gültig?
2notemein-wert_note2class
-
Was passiert beim Ausführen des folgenden Codes?
if 4 > 2 print("Ja")- „Ja“ wird ausgegeben.
- „Nein“ wird ausgegeben.
- Es erfolgt keine Ausgabe.
- Es entsteht ein Syntaxfehler.
-
Was ist das Ergebnis von
17 // 5?- 3
- 3.4
- 2
- 4
-
Welchen Datentyp besitzt der Wert
"False"?- Boolean
- Integer
- String
- Float
-
Was ist das Ergebnis von
bool(0)?- 0
- False
- True
- None
-
Welcher Operator prüft, ob zwei Werte ungleich sind?
=<>==!=
-
Was bewirkt die String-Methode
capitalize()?- Der erste Buchstabe wird groß und die übrigen Buchstaben werden klein geschrieben.
- Alle Buchstaben werden groß geschrieben.
- Alle Buchstaben werden klein geschrieben.
- Der String wird umgekehrt.
-
Was ist das Ergebnis von
len("Informatik")?- 9
- 11
- 10
- 8
-
Was liefert der folgende Ausdruck?
"Datenbank"[0:5]- Date
- Daten
- Datenb
- atenb
-
Wie greift man auf das letzte Element der Liste
wertezu?werte[last]werte[0]werte[len]werte[-1]
-
Welche Methode fügt ein einzelnes Element am Ende einer Liste hinzu?
append()extend()insert()add()
-
Was ist das Ergebnis von
sum([2, 3, 5])?- 5
- 8
- 10
- 15
-
Wie ändert man das zweite Element der Liste
liste = [4, 6, 8]in den Wert 10?liste[2] = 10liste[1] = 10liste[0] = 10liste[-1] = 10
-
Welche Anweisung löscht das erste Element einer Liste?
liste.remove(0)liste.clear(0)delete liste[0]del liste[0]
-
Welche Anweisung erzeugt eine neue, absteigend sortierte Liste, ohne die ursprüngliche Liste
zahlenzu verändern?sorted(zahlen, reverse=True)zahlen.sort(reverse=True)zahlen.reverse()sort(zahlen, descending=True)
-
Welche Methode entfernt alle Elemente aus einer Liste?
remove()delete()clear()empty()
-
Welche Methode zählt, wie oft der Wert 4 in einer Liste vorkommt?
index(4)count(4)find(4)len(4)
-
Welche Werte enthält
list(range(5, 10, 2))?- [5, 6, 7, 8, 9]
- [5, 7, 9, 11]
- [6, 8, 10]
- [5, 7, 9]
-
Was wird ausgegeben?
for i in range(3): print(i + 1)- 1, 2, 3
- 0, 1, 2
- 1, 2
- 0, 1, 2, 3
-
Was wird ausgegeben?
for i in range(5): if i == 2: break print(i)- 0, 1, 2
- 2, 3, 4
- 0, 1
- 0, 1, 3, 4
-
Was wird ausgegeben?
for i in range(4): if i == 1: continue print(i)- 0, 1, 2, 3
- 0, 2, 3
- 1, 2, 3
- 0, 1
-
Welche Funktionsdefinition ist korrekt?
function addiere(a, b):def addiere[a, b]:def addiere(a, b)def addiere(a, b):
-
Wie wird die Funktion
addieremit den Werten 4 und 5 aufgerufen?addiere(4, 5)addiere[4, 5]call addiere(4, 5)addiere = 4, 5
-
Welche Funktionsdefinition enthält einen gültigen Standardwert?
def gruss("Gast"):def gruss(name:"Gast"):def gruss(name="Gast"):function gruss(name="Gast"):
-
Wie wird das Modul
mathimportiert?include mathimport mathrequire mathload math
-
Welchen Datentyp liefert
input()grundsätzlich zurück?- Integer
- Float
- Boolean
- String
-
Welche Anweisung liest eine Ganzzahl ein?
anzahl = int(input("Anzahl: "))anzahl = input(int("Anzahl: "))anzahl = str(input("Anzahl: "))anzahl = integer("Anzahl: ")
-
Welche Anweisung definiert eine Klasse mit dem Namen
Buch?def Buch:object Buch:class Buch:create Buch:
-
Wofür steht der Parameter
selfin einer Instanzmethode?- Für die übergeordnete Klasse
- Für die aktuelle Instanz
- Für das importierte Modul
- Für alle Objekte einer Klasse gleichzeitig
-
Welche Anweisung erzeugt ein Objekt der Klasse
Buch?buch = new Buch()buch = class Buch()Buch = buch()buch = Buch()
-
Wie wird
EBookals Unterklasse vonBuchdefiniert?class EBook(Buch):class EBook extends Buch:class EBook -> Buch:class EBook inherits Buch:
-
Wie wird das JSON-Modul importiert?
include jsonimport JSON()import jsonrequire json
-
Welche Funktion wandelt einen JSON-String in Python-Daten um?
json.dumps(text)json.loads(text)json.loadfile(text)json.parse(text)
-
Welche Funktion schreibt Python-Daten als JSON in eine bereits geöffnete Datei?
json.dumps(daten, datei)json.loads(daten, datei)json.write(daten, datei)json.dump(daten, datei)
-
Mit welchem Modus wird eine Datei zum Lesen geöffnet?
open("daten.txt", "r")open("daten.txt", "w")open("daten.txt", "a")open("daten.txt", "x")
-
Welchen Vorteil bietet eine Dateiöffnung mit
with open(...)?- Die Datei wird automatisch verschlüsselt.
- Die Datei kann nur gelesen werden.
- Die Datei wird nach der Verwendung automatisch geschlossen.
- Die Datei wird automatisch gelöscht.
-
Welche Bedingung prüft, ob
temperaturkleiner oder gleich 0 ist?if temperatur =< 0:if temperatur <= 0:if temperatur = 0:if 0 < temperatur:
-
Was ist ein Objekt in der objektorientierten Programmierung?
- Eine Schleifenart
- Ein Python-Modul
- Eine Klassendefinition
- Eine konkrete Instanz einer Klasse
-
Welcher Python-Datentyp entsteht typischerweise aus einem JSON-Objekt mit Schlüssel-Wert-Paaren?
- Dictionary
- String
- Tuple
- Set
Lösungen Teil 1
- B – PyPyPy
- C – _note2
- D – Syntaxfehler
- A – 3
- C – String
- B – False
- D – !=
- A – Erster Buchstabe groß, übrige Buchstaben klein
- C – 10
- B – Daten
- D – werte[-1]
- A – append()
- C – 10
- B – liste[1] = 10
- D – del liste[0]
- A – sorted(zahlen, reverse=True)
- C – clear()
- B – count(4)
- D – [5, 7, 9]
- A – 1, 2, 3
- C – 0, 1
- B – 0, 2, 3
- D – def addiere(a, b):
- A – addiere(4, 5)
- C – def gruss(name=“Gast“):
- B – import math
- D – String
- A – anzahl = int(input(„Anzahl: „))
- C – class Buch:
- B – Aktuelle Instanz
- D – buch = Buch()
- A – class EBook(Buch):
- C – import json
- B – json.loads(text)
- D – json.dump(daten, datei)
- A – open(„daten.txt“, „r“)
- C – Die Datei wird automatisch geschlossen
- B – if temperatur <= 0:
- D – Eine konkrete Instanz einer Klasse
- A – Dictionary
Teil 2 – Fehlersuche
Mögliche Gesamtpunktzahl: 25 Punkte
Jede vollständig richtige Antwort ergibt: 5 Punkte
Verfügbare Zeit: 15 Minuten
Erlaubte Hilfsmittel
Recherche auf den Seiten www.w3schools.com und www.pythonentwicklerkurs.de
Aufgabenstellung
Benenne bei jeder Codedarstellung die fehlerhafte Zeile und beschreibe den enthaltenen Fehler. Pro Codedarstellung existiert genau ein Fehler.
Hinweise
Die Aufgaben gehen von der Annahme aus, dass für jede Variable und für jedes Argument ein Wert vorhanden ist. Benötigte Dateien, Pfade, Datenbanken und Datenbanktabellen sind ebenfalls vorhanden. Ein Fehler kann sowohl die Syntax als auch die Programmlogik betreffen.
Aufgabe 1
1 pfad = "C:\neu\texte\bericht.txt"
2
3 with open(pfad, "r") as datei:
4 inhalt = datei.read()
5
6 print(inhalt)
Zeile: ________________________________________________
Fehlerbeschreibung: ____________________________________________________________________
____________________________________________________________________
Aufgabe 2
1 namen = ["Zoe", "Anna", "Ben"]
2 sortierte_namen = namen.sort()
3
4 print(sortierte_namen[0])
Zeile: ________________________________________________
Fehlerbeschreibung: ____________________________________________________________________
____________________________________________________________________
Aufgabe 3
1 namen = ["Lena", "Omar"]
2 namen_iterator = iter(namen)
3
4 try:
5 while True:
6 print(next(namen_iterator))
7 except ValueError:
8 print("Alle Namen wurden ausgegeben.")
Zeile: ________________________________________________
Fehlerbeschreibung: ____________________________________________________________________
____________________________________________________________________
Aufgabe 4
1 class Person:
2 def __init__(self, name):
3 self.name = name
4
5 class Mitarbeiter(Person):
6 def __init__(self, name, abteilung):
7 super().__init__(self, name)
8 self.abteilung = abteilung
9
10 mitarbeiter = Mitarbeiter("Nora", "IT")
11 print(mitarbeiter.name, mitarbeiter.abteilung)
Zeile: ________________________________________________
Fehlerbeschreibung: ____________________________________________________________________
____________________________________________________________________
Aufgabe 5
1 import sqlite3
2
3 verbindung = sqlite3.connect("kunden.db")
4 cursor = verbindung.cursor()
5 neuer_kunde = ("Mara", "Rosenheim")
6
7 cursor.execute("INSERT INTO kunden (name, stadt) VALUES (?, ?)", neuer_kunde)
8 verbindung.commit
9 verbindung.close()
Zeile: ________________________________________________
Fehlerbeschreibung: ____________________________________________________________________
____________________________________________________________________
Lösung Teil 2
Lösungsblatt
Abschlussprüfung Python 2026 – Teil 2/3 – Version D
Aufgabe 1
Fehlerhafte Zeile: 1
Fehlerbeschreibung:
Innerhalb des Dateipfades werden einfache Backslashes verwendet. Python
interpretiert Zeichenkombinationen wie \n, \t und \b als Escape-Zeichen.
Dadurch entspricht der gespeicherte String nicht dem gewünschten Dateipfad.
Mögliche Korrektur mit einem Raw-String:
pfad = r“C:\neu\texte\bericht.txt“
Alternative Korrektur mit doppelten Backslashes:
pfad = „C:\neu\texte\bericht.txt“
Aufgabe 2
Fehlerhafte Zeile: 2
Fehlerbeschreibung:
Die Listenmethode sort() sortiert die vorhandene Liste direkt und gibt keinen
neuen Listenwert zurück. Der Rückgabewert von sort() ist None. Deshalb enthält
sortierte_namen anschließend keine Liste und kann nicht über einen Index
ausgelesen werden.
Mögliche Korrektur:
namen.sort()
sortierte_namen = namen
Alternative Korrektur:
sortierte_namen = sorted(namen)
Aufgabe 3
Fehlerhafte Zeile: 7
Fehlerbeschreibung:
Wenn ein Iterator keine weiteren Elemente mehr enthält, löst next() keine
ValueError-Ausnahme aus. Stattdessen wird eine StopIteration-Ausnahme
ausgelöst. Deshalb wird die vorhandene Ausnahmebehandlung nicht ausgeführt.
Korrektur:
except StopIteration:
Aufgabe 4
Fehlerhafte Zeile: 7
Fehlerbeschreibung:
Beim Aufruf einer Methode über super() wird die aktuelle Instanz automatisch
übergeben. self darf deshalb nicht zusätzlich als Argument an die
init()-Methode der Elternklasse übergeben werden. Andernfalls erhält die
Methode zu viele Argumente.
Korrektur:
super().init(name)
Aufgabe 5
Fehlerhafte Zeile: 8
Fehlerbeschreibung:
Die Methode commit wird lediglich referenziert, aber nicht aufgerufen. Ohne
die runden Klammern wird die Datenbanktransaktion nicht bestätigt. Der neu
eingefügte Datensatz wird dadurch beim Schließen der Verbindung nicht
dauerhaft gespeichert.
Korrektur:
verbindung.commit()
Teil 3 – Prüfungsaufgabe: Reklamationsverwaltung
Ausgangslage:
In einem Reparaturservice für Elektrogeräte sollen Kundendaten und Reklamationen verwaltet werden. Es gibt bereits eine Datei kunde.py, die eine Klasse Kunde enthält, sowie eine JSON-Datei kunden.json, in der alle Kundendaten gespeichert werden.
Datei: kunde.py
class Kunde:
def __init__(self, kunden_id, name, email):
self.kunden_id = kunden_id
self.name = name
self.email = email
def __str__(self):
return f"{self.kunden_id}: {self.name} ({self.email})"
Datei: kunden.json
[
{"kunden_id": 1, "name": "Mara Berger", "email": "m.berger@example.com"},
{"kunden_id": 2, "name": "Luca Klein", "email": "l.klein@example.com"}
]
Ihre Aufgabe:
Erweitern Sie die bestehende Anwendung um eine Funktion zur Verwaltung von Reklamationen. Die Reklamationen sollen in einer separaten JSON-Datei gespeichert werden. Jede Reklamation gehört zu genau einem Kunden.
Erstellen Sie dazu:
- Ein neues Modul
reklamation.py, das eine KlasseReklamationenthält. - Die Klasse
Reklamationsoll folgende Attribute haben:reklamations_id(int)kunden_id(int)produktname(str)beschreibung(str)status(str, z. B. „offen“, „in Bearbeitung“, „erledigt“)
- Eine Methode
speichern_in_datei(self, dateiname), die die Reklamation im JSON-Format in eine Datei speichert. Wenn die Datei noch nicht existiert, soll sie erstellt werden. - Eine weitere Funktion
lade_reklamationen(dateiname: str) -> list[Reklamation], die alle Reklamationen aus einer Datei lädt und als Liste von Objekten zurückgibt.
# Projektstruktur
├── kunde.py # dient der Orientierung - kann, muss aber nicht verwendet werden
├── reklamation.py ← zu erstellen
├── kunden.json. # dient der Orientierung - kann, muss aber nicht verwendet werden
├── reklamationen.json ← wird durch Programm erstellt
└── main.py ← soll zur Ausführung erstellt werden
Hinweise zur Bewertung:
- Saubere Modultrennung
- Fehlerfreies Einlesen und Schreiben von JSON-Daten
- Korrekte Verwendung von Klassen und Objekten
Musterlösung:
Bei Lehrkraft hier freischalten lassen.
Datei: reklamation.py
import json
import os
class Reklamation:
def __init__(self, reklamations_id, kunden_id, produktname, beschreibung, status):
self.reklamations_id = reklamations_id
self.kunden_id = kunden_id
self.produktname = produktname
self.beschreibung = beschreibung
self.status = status
def speichern_in_datei(self, dateiname):
eintrag = self.__dict__
if os.path.exists(dateiname):
with open(dateiname, "r", encoding="utf-8") as f:
daten = json.load(f)
else:
daten = []
daten.append(eintrag)
with open(dateiname, "w", encoding="utf-8") as f:
json.dump(daten, f, indent=2)
def __str__(self):
return f"[{self.reklamations_id}] Produkt: {self.produktname}, Status: {self.status}"
def lade_reklamationen(dateiname):
reklamationen = []
try:
with open(dateiname, "r", encoding="utf-8") as f:
daten = json.load(f)
for eintrag in daten:
reklamation = Reklamation(**eintrag)
reklamationen.append(reklamation)
except FileNotFoundError:
pass
return reklamationen
Datei: main.py
from reklamation import Reklamation, lade_reklamationen
# Beispielhafte Erstellung einer Reklamation
reklamation1 = Reklamation(1001, 1, "Toaster X1", "Heizt nicht mehr", "offen")
reklamation1.speichern_in_datei("reklamationen.json")
# Laden und Ausgabe
alle = lade_reklamationen("reklamationen.json")
for r in alle:
print(r)
