4. Prüfungsvorbereitung

Kursinhalte

  • Zeitansatz Teil1: 20 Minuten
  • Zeitansatz Teil2: 15 Minuten
  • Zeitansatz Teil3: 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.

  1. Was wird durch den folgenden Code ausgegeben?

    print("Hallo", "Python")
    1. Hallo Python
    2. HalloPython
    3. „Hallo“, „Python“
    4. Es entsteht ein Fehler.
  2. Welcher Code verwendet die Einrückung korrekt?

    1. if x > 0:
      print("positiv")
    2. if x > 0 {
          print("positiv")
      }
    3. if x > 0:
          print("positiv")
    4. if x > 0 then
          print("positiv")
  3. Was passiert beim Ausführen des folgenden Codes?

    print(5 / 0)
    1. Es wird 0 ausgegeben.
    2. Es entsteht ein ZeroDivisionError.
    3. Es wird 5 ausgegeben.
    4. Es entsteht ein NameError.
  4. Welchen Datentyp besitzt der Wert 7.0?

    1. Integer
    2. String
    3. Boolean
    4. Float
  5. Was ist das Ergebnis von 10 % 3?

    1. 1
    2. 3
    3. 3.33
    4. 0
  6. Welche Anweisung wandelt die Zahl 25 in einen String um?

    1. int(25)
    2. float(25)
    3. str(25)
    4. string = 25
  7. Was ist das Ergebnis von not True?

    1. True
    2. False
    3. 1
    4. None
  8. Welche String-Methode ersetzt einen Teil eines Strings?

    1. change()
    2. switch()
    3. exchange()
    4. replace()
  9. Was ist das Ergebnis von len("A B")?

    1. 3
    2. 2
    3. 4
    4. 1
  10. Was liefert der folgende Ausdruck?

    "Entwicklung"[3:7]
    1. Entw
    2. wickl
    3. wick
    4. ntwi
  11. Wie greift man auf das dritte Element einer Liste zu?

    1. liste[3]
    2. liste[2]
    3. liste(2)
    4. liste.third()
  12. Welche Methode fügt alle Elemente einer zweiten Liste hinzu?

    1. appendall()
    2. insert()
    3. push()
    4. extend()
  13. Was ist das Ergebnis von len([[1, 2], [3, 4]])?

    1. 2
    2. 4
    3. 1
    4. 8
  14. Wie ändert man das zweite Element von x = [3, 5, 7] in den Wert 9?

    1. x[2] = 9
    2. x[0] = 9
    3. x[1] = 9
    4. x[3] = 9
  15. Was bewirkt liste.pop() ohne Angabe eines Index?

    1. Die gesamte Liste wird gelöscht.
    2. Das letzte Element wird entfernt und zurückgegeben.
    3. Das erste Element wird entfernt.
    4. Die Liste wird sortiert.
  16. Wie wird eine Liste zahlen direkt aufsteigend sortiert?

    1. sort(zahlen)
    2. zahlen.order()
    3. zahlen = zahlen.sort()
    4. zahlen.sort()
  17. Welche Methode kehrt die Reihenfolge einer Liste um?

    1. reverse()
    2. invert()
    3. backward()
    4. switch()
  18. Welche Methode liefert den Index des ersten Vorkommens eines Wertes?

    1. count()
    2. find()
    3. index()
    4. position()
  19. Welche Werte enthält list(range(4))?

    1. [1, 2, 3, 4]
    2. [0, 1, 2, 3]
    3. [0, 1, 2, 3, 4]
    4. [1, 2, 3]
  20. Was wird ausgegeben?

    x = 1
    while x < 4:
        print(x)
        x += 1
    1. 0, 1, 2, 3
    2. 1, 2, 3, 4
    3. 1, 2
    4. 1, 2, 3
  21. Welche Anweisung beendet eine Schleife sofort?

    1. break
    2. continue
    3. pass
    4. next
  22. Was bewirkt continue?

    1. Die Schleife wird vollständig beendet.
    2. Das Programm wird beendet.
    3. Der restliche Code der aktuellen Iteration wird übersprungen.
    4. Die Schleife wird gelöscht.
  23. Welche Funktionsdefinition ist korrekt?

    1. function multipliziere(a, b):
    2. def multipliziere(a, b):
    3. def multipliziere[a, b]:
    4. define multipliziere(a, b):
  24. Wie wird die Funktion begruesse mit einem benannten Argument aufgerufen?

    1. begruesse["Lina"]
    2. begruesse = "Lina"
    3. call begruesse(name="Lina")
    4. begruesse(name="Lina")
  25. Welche Anweisung gibt einen Wert aus einer Funktion zurück?

    1. return
    2. print
    3. output
    4. send
  26. Wie wird das Paket pandas installiert?

    1. python pandas install
    2. install pandas
    3. pip install pandas
    4. pip pandas create
  27. Welchen Datentyp liefert input() zurück?

    1. Integer
    2. String
    3. Float
    4. Boolean
  28. Welche Anweisung liest einen Preis als Kommazahl ein?

    1. preis = int(input("Preis: "))
    2. preis = input(float("Preis: "))
    3. preis = str(input("Preis: "))
    4. preis = float(input("Preis: "))
  29. Welche Anweisung definiert eine Klasse mit dem Namen Person?

    1. class Person:
    2. def Person:
    3. object Person:
    4. new Person:
  30. Wie lautet die Konstruktormethode einer Python-Klasse?

    1. def constructor(self):
    2. def init(self):
    3. def __init__(self):
    4. def create(self):
  31. Wie greift man auf das Attribut name des Objekts person zu?

    1. person[name]
    2. person.name
    3. person->name
    4. name.person
  32. Wie wird Azubi als Unterklasse von Mitarbeiter definiert?

    1. class Azubi extends Mitarbeiter:
    2. class Azubi -> Mitarbeiter:
    3. class Azubi inherits Mitarbeiter:
    4. class Azubi(Mitarbeiter):
  33. Wie wird das JSON-Modul importiert?

    1. import json
    2. require json
    3. include json
    4. load json
  34. Welche Funktion erzeugt aus Python-Daten einen JSON-String?

    1. json.loads()
    2. json.write()
    3. json.dumps()
    4. json.load()
  35. Welche Funktion liest JSON-Daten aus einer geöffneten Datei?

    1. json.loads(datei)
    2. json.load(datei)
    3. json.read(datei)
    4. json.open(datei)
  36. Was bewirkt der Dateimodus "w"?

    1. Die Datei wird ausschließlich gelesen.
    2. Neue Inhalte werden immer angehängt.
    3. Die Datei wird nur geöffnet, wenn sie bereits existiert.
    4. Die Datei wird zum Schreiben geöffnet und vorhandener Inhalt wird überschrieben.
  37. Welche Verzweigung ist syntaktisch korrekt?

    1. if punkte >= 50:
          print("Bestanden")
      elif punkte >= 40:
          print("Nachprüfung")
      else:
          print("Nicht bestanden")
    2. if punkte >= 50
          print("Bestanden")
      else if punkte >= 40
    3. if punkte >= 50 then:
          print("Bestanden")
    4. if (punkte >= 50) {
          print("Bestanden")
      }
  38. Welche Anweisung erzeugt ein Objekt der Klasse Person?

    1. p = new Person()
    2. p = class Person()
    3. p = Person()
    4. Person = p()
  39. Wie wird die Methode anzeigen() des Objekts p aufgerufen?

    1. anzeigen(p)
    2. p.anzeigen()
    3. p->anzeigen()
    4. anzeigen.p()
  40. Wofür wird JSON hauptsächlich verwendet?

    1. Zum Zeichnen von Benutzeroberflächen
    2. Zum Installieren von Paketen
    3. Zum Berechnen mathematischer Formeln
    4. Zum strukturierten Speichern und Austauschen von Daten

Lösungen Teil 1

  1. A – Hallo Python
  2. C – Korrekte Einrückung
  3. B – ZeroDivisionError
  4. D – Float
  5. A – 1
  6. C – str(25)
  7. B – False
  8. D – replace()
  9. A – 3
  10. C – wick
  11. B – liste[2]
  12. D – extend()
  13. A – 2
  14. C – x[1] = 9
  15. B – Letztes Element wird entfernt und zurückgegeben
  16. D – zahlen.sort()
  17. A – reverse()
  18. C – index()
  19. B – [0, 1, 2, 3]
  20. D – 1, 2, 3
  21. A – break
  22. C – Rest der aktuellen Iteration wird übersprungen
  23. B – def multipliziere(a, b):
  24. D – begruesse(name=“Lina“)
  25. A – return
  26. C – pip install pandas
  27. B – String
  28. D – preis = float(input(„Preis: „))
  29. A – class Person:
  30. C – def init(self):
  31. B – person.name
  32. D – class Azubi(Mitarbeiter):
  33. A – import json
  34. C – json.dumps()
  35. B – json.load(datei)
  36. D – Datei wird zum Schreiben geöffnet und Inhalt überschrieben
  37. A – Korrekte if-, elif- und else-Syntax
  38. C – p = Person()
  39. B – p.anzeigen()
  40. D – 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. Benötigte Dateien, Pfade, Datenbanken und Datenbanktabellen sind ebenfalls vorhanden. Ein Fehler kann sowohl die Syntax als auch die Programmlogik betreffen.


Aufgabe 1

1  text = "Programmieren"
2  ausschnitt = text[0:6:0]
3  print(ausschnitt)

Zeile: ________________________________________________

Fehlerbeschreibung: ____________________________________________________________________

____________________________________________________________________


Aufgabe 2

1  produkte = ["Tastatur", "Maus"]
2  produkte.append("Monitor", "Drucker")
3  print(produkte)

Zeile: ________________________________________________

Fehlerbeschreibung: ____________________________________________________________________

____________________________________________________________________


Aufgabe 3

1  from math import sqrt
2  zahl = 81
3  ergebnis = math.sqrt(zahl)
4  print(ergebnis)

Zeile: ________________________________________________

Fehlerbeschreibung: ____________________________________________________________________

____________________________________________________________________


Aufgabe 4

1  anzahl = 25
2
3  with open("anzahl.txt", "w") as datei:
4      datei.write(anzahl)
5
6  print("Die Anzahl wurde gespeichert.")

Zeile: ________________________________________________

Fehlerbeschreibung: ____________________________________________________________________

____________________________________________________________________


Aufgabe 5

1  import sqlite3
2
3  verbindung = sqlite3.connect("kunden.db")
4  cursor = verbindung.cursor()
5  stadt = "Rosenheim"
6
7  cursor.execute("SELECT name FROM kunden ORDER BY name WHERE stadt = ?", (stadt,))
8  ergebnisse = cursor.fetchall()
9
10 for kunde in ergebnisse:
11     print(kunde[0])
12
13 verbindung.close()

Zeile: ________________________________________________

Fehlerbeschreibung: ____________________________________________________________________

____________________________________________________________________

Lösungen Teil 2

Lösungsblatt

Aufgabe 1

Fehlerhafte Zeile: 2

Fehlerbeschreibung:
Beim Schneiden eines Strings gibt der dritte Wert die Schrittweite an. Eine
Schrittweite von 0 ist nicht erlaubt, da Python damit nicht zum nächsten
Zeichen gelangen könnte. Dadurch entsteht ein ValueError.

Mögliche Korrektur:
ausschnitt = text[0:6]

Alternative Korrektur:
ausschnitt = text[0:6:1]

Aufgabe 2

Fehlerhafte Zeile: 2

Fehlerbeschreibung:
Die Listenmethode append() nimmt genau ein Element als Argument entgegen. In
Zeile 2 werden jedoch zwei einzelne Argumente übergeben. Sollen mehrere
Elemente hinzugefügt werden, kann extend() verwendet werden.

Korrektur mit extend():
produkte.extend([„Monitor“, „Drucker“])

Alternative Korrektur:
produkte.append(„Monitor“)
produkte.append(„Drucker“)

Aufgabe 3

Fehlerhafte Zeile: 3

Fehlerbeschreibung:
In Zeile 1 wurde nur die Funktion sqrt direkt aus dem Modul math importiert.
Der Modulname math selbst steht deshalb nicht zur Verfügung. Die Funktion muss
direkt mit ihrem importierten Namen aufgerufen werden.

Korrektur:
ergebnis = sqrt(zahl)

Alternative Korrektur des Imports:
import math

In diesem Fall kann der Aufruf in Zeile 3 unverändert bleiben.

Aufgabe 4

Fehlerhafte Zeile: 4

Fehlerbeschreibung:
Die Methode write() erwartet einen String als zu schreibenden Wert. Die
Variable anzahl enthält jedoch eine Ganzzahl. Die Zahl muss vor dem Schreiben
in einen String umgewandelt werden.

Korrektur:
datei.write(str(anzahl))

Aufgabe 5

Fehlerhafte Zeile: 7

Fehlerbeschreibung:
Die Bestandteile der SQL-Anweisung stehen in der falschen Reihenfolge. Eine
WHERE-Bedingung muss vor der ORDER-BY-Anweisung stehen. Erst werden die
Datensätze gefiltert und anschließend wird das Ergebnis sortiert.

Korrektur:
cursor.execute(
„SELECT name FROM kunden WHERE stadt = ? ORDER BY name“,
(stadt,)
)

Teil 3 – Prüfungsaufgabe: Lieferverfolgung im Paketzentrum

Ausgangslage:

Im Paketzentrum werden alle Pakete registriert, die ankommen oder verschickt werden. Zu jedem Paket soll festgehalten werden, wer der Empfänger ist, wo es hin soll und ob es bereits ausgeliefert wurde.

Gegeben:

Datei: paket.py

class Paket:
    def __init__(self, paket_id, empfaenger, adresse):
        self.paket_id = paket_id
        self.empfaenger = empfaenger
        self.adresse = adresse

Datei: pakete.json

[
    {"paket_id": 1, "empfaenger": "Anna Neumann", "adresse": "Musterstraße 5"},
    {"paket_id": 2, "empfaenger": "Max Otto", "adresse": "Bahnhofstraße 2"}
]

Ihre Aufgabe:

Erweitern Sie die bestehende Anwendung.

  1. Erstellen Sie ein neues Modul verfolgung.py.
  2. Implementieren Sie darin eine Klasse Verfolgung mit folgenden Eigenschaften:
    • paket_id (int)
    • status (str), z. B. "angekommen", "ausgeliefert" oder "verloren"
  3. Schreiben Sie eine Methode speichern(self, dateiname), die die Verfolgung in eine Datei verfolgung.json speichert.
  4. Schreiben Sie eine Funktion lade_verfolgungen(dateiname), die alle gespeicherten Verfolgungen als Liste zurückgibt.
  5. Schreiben Sie eine kleine Testdatei main.py, in der Sie:
    • Eine neue Verfolgung anlegen und speichern
    • Alle gespeicherten Verfolgungen laden und ausgeben

Hinweise zur Aufgabe

Die Datei paket.py und der Inhalt von pakete.json sind in der Aufgabenstellung lediglich als Hintergrundinformation gegeben, um zu zeigen, in welchem Gesamtkontext das System arbeitet (z. B. dass Pakete existieren, die verfolgt werden könnten). Sie dienen hier der Rahmengeschichte.

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: verfolgung.py

Datei: main.py