Prüfungsvorbereitung

Kursinhalte
- Zeitansatz Teil 1: 20 Minuten
- Zeitansatz Teil 2: 15 Minuten
- Zeitansatz Teil 3: 75 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("Guten" + " " + "Tag")- Guten Tag
- GutenTag
- „Guten Tag“
- Es entsteht ein Fehler.
-
Welches Zeichen leitet in Python einen einzeiligen Kommentar ein?
- //
- <!–
- #
- /*
-
Was passiert beim Ausführen des folgenden Codes?
print("Python"- Python wird ausgegeben.
- Es entsteht ein Syntaxfehler.
- Es entsteht ein NameError.
- Es erfolgt keine Ausgabe.
-
Welche Anweisung erzeugt eine Ganzzahl-Variable mit dem Wert 8?
anzahl = 8anzahl = "8"anzahl = float(8)anzahl = str(8)
-
Welchen Datentyp besitzt der Wert
True?- Integer
- String
- Float
- Boolean
-
Welche Anweisung wandelt den String
"4.5"in eine Kommazahl um?int("4.5")float("4.5")str("4.5")number("4.5")
-
Wann ergibt der Operator
andden WahrheitswertTrue?- Wenn mindestens ein Ausdruck wahr ist.
- Wenn beide Ausdrücke wahr sind.
- Wenn beide Ausdrücke unterschiedlich sind.
- Wenn der erste Ausdruck falsch ist.
-
Welche String-Methode wandelt alle Buchstaben in Kleinbuchstaben um?
upper()lower()strip()replace()
-
Was ist das Ergebnis von
len("Schule")?- 5
- 7
- 6
- Es entsteht ein Fehler.
-
Welches Ergebnis liefert der folgende Ausdruck?
"Programmieren"[0:4]- Prog
- Progr
- gram
- Programm
-
Wie greift man auf das zweite Element der Liste
farbenzu?farben[2]farben[1]farben(1)farben->1
-
Wie fügt man den Wert
"neu"am Anfang einer Liste ein?liste.append("neu")liste.add(0, "neu")liste.insert(0, "neu")liste.push("neu")
-
Was gibt
len([2, 4, 6, 8])zurück?- 3
- 4
- 8
- 20
-
Wie ändert man das letzte Element der Liste
werte = [1, 2, 3]in den Wert 10?werte[3] = 10werte[last] = 10werte[0] = 10werte[-1] = 10
-
Welche Anweisung entfernt das Element mit dem Index 1 aus einer Liste?
liste.remove(1)liste.pop(1)liste.delete(1)liste.clear(1)
-
Welche Anweisung erzeugt eine neue, aufsteigend sortierte Liste, ohne die ursprüngliche Liste
zahlenzu verändern?zahlen.sort()zahlen = zahlen.sort()sorted(zahlen)zahlen.order()
-
Welche Methode kehrt die Reihenfolge der Elemente einer Liste um?
reverse()backward()invert()sort()
-
Was ist das Ergebnis des folgenden Ausdrucks?
[3, 1, 3, 2].count(3)- 1
- 2
- 3
- 4
-
Welche Werte enthält
list(range(2, 6))?- [2, 3, 4, 5, 6]
- [1, 2, 3, 4, 5]
- [2, 3, 4, 5]
- [3, 4, 5, 6]
-
Was passiert beim folgenden Code?
while False: print("Start")- „Start“ wird einmal ausgegeben.
- „Start“ wird unendlich oft ausgegeben.
- Es entsteht ein Syntaxfehler.
- Die Schleife wird nicht ausgeführt.
-
Was bewirkt
breakinnerhalb einer Schleife?- Die aktuelle Iteration wird wiederholt.
- Die Schleife wird vollständig beendet.
- Das gesamte Programm wird beendet.
- Die Schleifenbedingung wird auf
Truegesetzt.
-
Was bewirkt
continueinnerhalb einer Schleife?- Die Schleife wird vollständig beendet.
- Die Schleife beginnt wieder bei der ersten Iteration.
- Der Rest der aktuellen Iteration wird übersprungen.
- Die Schleifenvariable wird gelöscht.
-
Welche Funktionsdefinition ist syntaktisch korrekt?
function begruessung(name):def begruessung(name)def begruessung: (name)def begruessung(name):
-
Wie wird die Funktion
begruessungmit dem Argument"Mia"aufgerufen?begruessung("Mia")begruessung["Mia"]call begruessung("Mia")begruessung = "Mia"
-
Welche Aussage über
returnist korrekt?returngibt immer Text auf dem Bildschirm aus.returnstartet die Funktion erneut.returnbeendet die Funktion und kann einen Wert zurückgeben.returndarf nur in Schleifen verwendet werden.
-
Mit welchem Befehl wird das Paket
flaskinstalliert?python flask installpip install flaskpip flask createinstall package flask
-
Welche Funktion liest eine Eingabe des Nutzers ein?
read()scan()get()input()
-
Was bewirkt die folgende Anweisung?
alter = int(input("Alter: "))- Die Eingabe wird in einen Boolean umgewandelt.
- Die Eingabe wird in eine Ganzzahl umgewandelt.
- Die Eingabe wird automatisch gerundet.
- Die Eingabe wird als Liste gespeichert.
-
Welche Anweisung definiert eine Klasse mit dem Namen
Auto?class Auto:def Auto:object Auto:create Auto:
-
Welche Methode dient in Python als Konstruktor einer Klasse?
def constructor(self):def init(self):def create(self):def __init__(self):
-
Wie wird innerhalb einer Klasse ein Instanzattribut gespeichert?
farbe.self = farbeAuto.farbe = farbeself.farbe = farbethis.farbe = farbe
-
Welche Schreibweise definiert die Klasse
Hundals Unterklasse vonTier?class Hund extends Tier:class Hund(Tier):class Hund -> Tier:class Hund inherits Tier:
-
Wie wird das JSON-Modul importiert?
import jsoninclude jsonrequire jsonimport JSON()
-
Welche Funktion wandelt einen JSON-String in ein Python-Objekt um?
json.loadfile(text)json.dumps(text)json.loads(text)json.parse(text)
-
Welche Funktion wandelt ein Python-Dictionary in einen JSON-String um?
json.loads(daten)json.write(daten)json.load(daten)json.dumps(daten)
-
Mit welchem Modus wird eine Datei geöffnet, wenn neue Inhalte am Dateiende ergänzt werden sollen?
open("log.txt", "r")open("log.txt", "a")open("log.txt", "w")open("log.txt", "x")
-
Welche Bedingung prüft, ob die Variable
zahlgerade ist?zahl / 2 == 0zahl == 2zahl % 2 == 0zahl % 2 == 1
-
Was ist ein Objekt in der objektorientierten Programmierung?
- Eine konkrete Instanz einer Klasse
- Eine Schleifenbedingung
- Eine importierte Datei
- Ein Kommentar im Programmcode
-
Wie wird die Methode
starten()des Objektsautoaufgerufen?starten(auto)auto->starten()starten.auto()auto.starten()
-
Wofür wird JSON hauptsächlich verwendet?
- Zum Kompilieren von Python-Programmen
- Zum strukturierten Speichern und Austauschen von Daten
- Zum Zeichnen von Grafiken
- Zum Installieren von Python-Paketen
Lösungen Teil 1
- A – Guten Tag
- C – #
- B – Syntaxfehler
- A – anzahl = 8
- D – Boolean
- B – float(„4.5“)
- B – Beide Ausdrücke müssen wahr sein
- B – lower()
- C – 6
- A – Prog
- B – farben[1]
- C – liste.insert(0, „neu“)
- B – 4
- D – werte[-1] = 10
- B – liste.pop(1)
- C – sorted(zahlen)
- A – reverse()
- B – 2
- C – [2, 3, 4, 5]
- D – Die Schleife wird nicht ausgeführt
- B – Die Schleife wird vollständig beendet
- C – Der Rest der aktuellen Iteration wird übersprungen
- D – def begruessung(name):
- A – begruessung(„Mia“)
- C – Beendet die Funktion und kann einen Wert zurückgeben
- B – pip install flask
- D – input()
- B – Die Eingabe wird in eine Ganzzahl umgewandelt
- A – class Auto:
- D – def init(self):
- C – self.farbe = farbe
- B – class Hund(Tier):
- A – import json
- C – json.loads(text)
- D – json.dumps(daten)
- B – open(„log.txt“, „a“)
- C – zahl % 2 == 0
- A – Eine konkrete Instanz einer Klasse
- D – auto.starten()
- B – Strukturiertes Speichern und Austauschen von Daten
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. Ein Fehler kann sowohl die Syntax als auch die Programmlogik betreffen.
Aufgabe 1
1 class Mitglied:
2 def __init__(self, name):
3 self.name = name
4 self.aktiv = True
5
6 def status_anzeigen(mitglied):
7 if mitglied.aktiv == True
8 print("Mitglied ist aktiv")
9
10 status_anzeigen(Mitglied("Lea"))
Zeile: ________________________________________________
Fehlerbeschreibung: ____________________________________________________________________
____________________________________________________________________
Aufgabe 2
1 class Buch:
2 def __init__(self, titel):
3 self.titel = titel
4
5 def titel_ausgeben(buecher):
6 for buch in len(buecher):
7 print(buch.titel)
8
9 titel_ausgeben([Buch("Python"), Buch("Datenbanken")])
Zeile: ________________________________________________
Fehlerbeschreibung: ____________________________________________________________________
____________________________________________________________________
Aufgabe 3
1 class Rechner:
2 def __init__(self):
3 self.ergebnis = 0
4
5 def addiere(a, b):
6 return a + b
7
8 rechner = Rechner()
9 print(rechner.addiere(4, 6))
Zeile: ________________________________________________
Fehlerbeschreibung: ____________________________________________________________________
____________________________________________________________________
Aufgabe 4
1 class Kunde:
2 def __init__(self, name):
3 self.name = name
4
5 def kunde_suchen(name):
6 return None
7
8 kunde = kunde_suchen("Mia")
9 if kunde is None:
10 print(kunde.name)
Zeile: ________________________________________________
Fehlerbeschreibung: ____________________________________________________________________
____________________________________________________________________
Aufgabe 5
1 class Datei:
2 def __init__(self, name):
3 self.name = name
4
5 dateien = [Datei("bericht.pdf"), Datei("liste.txt")]
6 index = 0
7 while index <= len(dateien):
8 print(dateien[index].name)
9 index += 1
Zeile: ________________________________________________
Fehlerbeschreibung: ____________________________________________________________________
____________________________________________________________________
Lösungen Teil 2
Lösungsblatt
Abschlussprüfung Python 2026 – Teil 2/3 – Version B
Aufgabe 1
Fehlerhafte Zeile: 7
Fehlerbeschreibung:
Am Ende der if-Bedingung fehlt der Doppelpunkt.
Korrektur:
if mitglied.aktiv == True:
Aufgabe 2
Fehlerhafte Zeile: 6
Fehlerbeschreibung:
Die Funktion len(buecher) liefert eine Ganzzahl. Eine Ganzzahl kann an dieser
Stelle nicht direkt mit einer for-Schleife durchlaufen werden. Da in Zeile 7
auf buch.titel zugegriffen wird, müssen die Buchobjekte selbst durchlaufen
werden.
Korrektur:
for buch in buecher:
Aufgabe 3
Fehlerhafte Zeile: 5
Fehlerbeschreibung:
Bei einer Instanzmethode muss der erste Parameter die aktuelle Instanz
entgegennehmen. Der Parameter self fehlt. Beim Methodenaufruf wird die Instanz
automatisch als zusätzliches Argument übergeben.
Korrektur:
def addiere(self, a, b):
Aufgabe 4
Fehlerhafte Zeile: 9
Fehlerbeschreibung:
Die Bedingung prüft, ob kunde den Wert None besitzt. In diesem Fall wird
anschließend trotzdem auf kunde.name zugegriffen. Ein None-Objekt besitzt
jedoch kein Attribut name. Die Ausgabe darf nur erfolgen, wenn ein Kunde
gefunden wurde.
Korrektur:
if kunde is not None:
Aufgabe 5
Fehlerhafte Zeile: 7
Fehlerbeschreibung:
Die Schleife läuft auch dann noch, wenn index genauso groß wie die Länge der
Liste ist. Der letzte gültige Listenindex ist jedoch immer um 1 kleiner als
die Listenlänge. Dadurch entsteht beim letzten Durchlauf ein IndexError.
Korrektur:
while index < len(dateien):
Teil 3 – Prüfungsaufgabe: Bücherverwaltungssystem
Ausgangslage:
Sie arbeiten in einer kleinen Bibliothek, die ihre Buchverwaltung digitalisieren möchte. Derzeit gibt es eine JSON-Datei mit einer Liste an Büchern. Jedes Buch enthält Titel, Autor, Erscheinungsjahr und Verfügbarkeit.
Datei: buecher.json
[
{
"titel": "Der Prozess",
"autor": "Franz Kafka",
"erscheinungsjahr": 1925,
"verfuegbar": true
},
{
"titel": "Faust",
"autor": "Johann Wolfgang von Goethe",
"erscheinungsjahr": 1808,
"verfuegbar": false
}
]
Bereits vorhandene Python-Dateien:
class Buch:
def __init__(self, titel, autor, erscheinungsjahr, verfuegbar):
self.titel = titel
self.autor = autor
self.erscheinungsjahr = erscheinungsjahr
self.verfuegbar = verfuegbar
def anzeigen(self):
status = "verfügbar" if self.verfuegbar else "ausgeliehen"
print(f"{self.titel} von {self.autor} ({self.erscheinungsjahr}) – {status}")
# TODO: Hier soll später die Hauptlogik stehen
Ihre Aufgabe:
Erweitern Sie das Projekt um folgende Funktionalitäten:
- Modulstruktur:
- Importieren Sie die Klasse
Buchausbuch.pyinmain.py.
- Importieren Sie die Klasse
- Dateiverarbeitung und JSON:
- Lesen Sie die Datei
buecher.jsonein und erzeugen Sie für jeden Eintrag ein Objekt der KlasseBuch. - Geben Sie alle Bücher mit der Methode
anzeigen()aus.
- Lesen Sie die Datei
- Neue Funktionalität hinzufügen:
- Erstellen Sie eine Funktion, mit der ein neues Buch über Benutzereingabe hinzugefügt wird.
- Speichern Sie die aktualisierte Liste wieder in
buecher.json.
Hinweise zur Bewertung:
- Saubere Modultrennung
- Fehlerfreies Einlesen und Schreiben von JSON-Daten
- Korrekte Verwendung von Klassen und Objekten
- Funktionierende Interaktion mit der Benutzereingabe
Musterlösung
Zum Anzeigen der Lösung die Lehrkraft fragen.
Hinweis: Die Musterlösung ist als solche zu betrachten. Nicht alle Details aus der Musterlösung müssen für eine volle Punktzahl erfüllt sein. Wichtig ist, dass die Kernfunktionen gegeben sind. Wie diese erreicht werden, wird nicht benotet.
Datei: main.py
import json
from buch import Buch
DATEINAME = "buecher.json"
def buecher_laden():
"""Lädt Bücher aus der JSON-Datei und gibt eine Liste von Buch-Objekten zurück."""
try:
with open(DATEINAME, "r", encoding="utf-8") as f:
daten = json.load(f)
return [Buch(**eintrag) for eintrag in daten]
except FileNotFoundError:
print("Datei nicht gefunden. Es wird eine leere Liste erstellt.")
return []
except json.JSONDecodeError:
print("Fehler beim Lesen der JSON-Datei.")
return []
def buecher_speichern(buecher_liste):
"""Speichert die aktuelle Liste der Bücher in der JSON-Datei."""
daten = [
{
"titel": buch.titel,
"autor": buch.autor,
"erscheinungsjahr": buch.erscheinungsjahr,
"verfuegbar": buch.verfuegbar
}
for buch in buecher_liste
]
with open(DATEINAME, "w", encoding="utf-8") as f:
json.dump(daten, f, ensure_ascii=False, indent=2)
def neues_buch_hinzufuegen():
"""Fragt Benutzereingaben ab und gibt ein neues Buch-Objekt zurück."""
print("\n--- Neues Buch hinzufügen ---")
titel = input("Titel: ")
autor = input("Autor: ")
try:
erscheinungsjahr = int(input("Erscheinungsjahr: "))
except ValueError:
print("Ungültiges Jahr. Standardwert 2000 wird gesetzt.")
erscheinungsjahr = 2000
verfuegbar_input = input("Verfügbar? (ja/nein): ").strip().lower()
verfuegbar = verfuegbar_input == "ja"
return Buch(titel, autor, erscheinungsjahr, verfuegbar)
def main():
buecher = buecher_laden()
print("\n--- Bücherliste ---")
for buch in buecher:
buch.anzeigen()
buch_neu = neues_buch_hinzufuegen()
buecher.append(buch_neu)
buecher_speichern(buecher)
print("\nDas Buch wurde erfolgreich hinzugefügt und gespeichert.")
if __name__ == "__main__":
main()
Datei: buecher.json
[
{
"titel": "Der Prozess",
"autor": "Franz Kafka",
"erscheinungsjahr": 1925,
"verfuegbar": true
},
{
"titel": "Faust",
"autor": "Johann Wolfgang von Goethe",
"erscheinungsjahr": 1808,
"verfuegbar": false
}
]
