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.
-
Was wird durch den folgenden Code ausgegeben?
print("Hallo", "Python")- Hallo Python
- HalloPython
- „Hallo“, „Python“
- Es entsteht ein Fehler.
-
Welcher Code verwendet die Einrückung korrekt?
if x > 0: print("positiv")if x > 0 { print("positiv") }if x > 0: print("positiv")if x > 0 then print("positiv")
-
Was passiert beim Ausführen des folgenden Codes?
print(5 / 0)- Es wird 0 ausgegeben.
- Es entsteht ein ZeroDivisionError.
- Es wird 5 ausgegeben.
- Es entsteht ein NameError.
-
Welchen Datentyp besitzt der Wert
7.0?- Integer
- String
- Boolean
- Float
-
Was ist das Ergebnis von
10 % 3?- 1
- 3
- 3.33
- 0
-
Welche Anweisung wandelt die Zahl 25 in einen String um?
int(25)float(25)str(25)string = 25
-
Was ist das Ergebnis von
not True?- True
- False
- 1
- None
-
Welche String-Methode ersetzt einen Teil eines Strings?
change()switch()exchange()replace()
-
Was ist das Ergebnis von
len("A B")?- 3
- 2
- 4
- 1
-
Was liefert der folgende Ausdruck?
"Entwicklung"[3:7]- Entw
- wickl
- wick
- ntwi
-
Wie greift man auf das dritte Element einer Liste zu?
liste[3]liste[2]liste(2)liste.third()
-
Welche Methode fügt alle Elemente einer zweiten Liste hinzu?
appendall()insert()push()extend()
-
Was ist das Ergebnis von
len([[1, 2], [3, 4]])?- 2
- 4
- 1
- 8
-
Wie ändert man das zweite Element von
x = [3, 5, 7]in den Wert 9?x[2] = 9x[0] = 9x[1] = 9x[3] = 9
-
Was bewirkt
liste.pop()ohne Angabe eines Index?- Die gesamte Liste wird gelöscht.
- Das letzte Element wird entfernt und zurückgegeben.
- Das erste Element wird entfernt.
- Die Liste wird sortiert.
-
Wie wird eine Liste
zahlendirekt aufsteigend sortiert?sort(zahlen)zahlen.order()zahlen = zahlen.sort()zahlen.sort()
-
Welche Methode kehrt die Reihenfolge einer Liste um?
reverse()invert()backward()switch()
-
Welche Methode liefert den Index des ersten Vorkommens eines Wertes?
count()find()index()position()
-
Welche Werte enthält
list(range(4))?- [1, 2, 3, 4]
- [0, 1, 2, 3]
- [0, 1, 2, 3, 4]
- [1, 2, 3]
-
Was wird ausgegeben?
x = 1 while x < 4: print(x) x += 1- 0, 1, 2, 3
- 1, 2, 3, 4
- 1, 2
- 1, 2, 3
-
Welche Anweisung beendet eine Schleife sofort?
breakcontinuepassnext
-
Was bewirkt
continue?- Die Schleife wird vollständig beendet.
- Das Programm wird beendet.
- Der restliche Code der aktuellen Iteration wird übersprungen.
- Die Schleife wird gelöscht.
-
Welche Funktionsdefinition ist korrekt?
function multipliziere(a, b):def multipliziere(a, b):def multipliziere[a, b]:define multipliziere(a, b):
-
Wie wird die Funktion
begruessemit einem benannten Argument aufgerufen?begruesse["Lina"]begruesse = "Lina"call begruesse(name="Lina")begruesse(name="Lina")
-
Welche Anweisung gibt einen Wert aus einer Funktion zurück?
returnprintoutputsend
-
Wie wird das Paket
pandasinstalliert?python pandas installinstall pandaspip install pandaspip pandas create
-
Welchen Datentyp liefert
input()zurück?- Integer
- String
- Float
- Boolean
-
Welche Anweisung liest einen Preis als Kommazahl ein?
preis = int(input("Preis: "))preis = input(float("Preis: "))preis = str(input("Preis: "))preis = float(input("Preis: "))
-
Welche Anweisung definiert eine Klasse mit dem Namen
Person?class Person:def Person:object Person:new Person:
-
Wie lautet die Konstruktormethode einer Python-Klasse?
def constructor(self):def init(self):def __init__(self):def create(self):
-
Wie greift man auf das Attribut
namedes Objektspersonzu?person[name]person.nameperson->namename.person
-
Wie wird
Azubials Unterklasse vonMitarbeiterdefiniert?class Azubi extends Mitarbeiter:class Azubi -> Mitarbeiter:class Azubi inherits Mitarbeiter:class Azubi(Mitarbeiter):
-
Wie wird das JSON-Modul importiert?
import jsonrequire jsoninclude jsonload json
-
Welche Funktion erzeugt aus Python-Daten einen JSON-String?
json.loads()json.write()json.dumps()json.load()
-
Welche Funktion liest JSON-Daten aus einer geöffneten Datei?
json.loads(datei)json.load(datei)json.read(datei)json.open(datei)
-
Was bewirkt der Dateimodus
"w"?- Die Datei wird ausschließlich gelesen.
- Neue Inhalte werden immer angehängt.
- Die Datei wird nur geöffnet, wenn sie bereits existiert.
- Die Datei wird zum Schreiben geöffnet und vorhandener Inhalt wird überschrieben.
-
Welche Verzweigung ist syntaktisch korrekt?
if punkte >= 50: print("Bestanden") elif punkte >= 40: print("Nachprüfung") else: print("Nicht bestanden")if punkte >= 50 print("Bestanden") else if punkte >= 40if punkte >= 50 then: print("Bestanden")if (punkte >= 50) { print("Bestanden") }
-
Welche Anweisung erzeugt ein Objekt der Klasse
Person?p = new Person()p = class Person()p = Person()Person = p()
-
Wie wird die Methode
anzeigen()des Objektspaufgerufen?anzeigen(p)p.anzeigen()p->anzeigen()anzeigen.p()
-
Wofür wird JSON hauptsächlich verwendet?
- Zum Zeichnen von Benutzeroberflächen
- Zum Installieren von Paketen
- Zum Berechnen mathematischer Formeln
- Zum strukturierten Speichern und Austauschen von Daten
Lösungen Teil 1
- A – Hallo Python
- C – Korrekte Einrückung
- B – ZeroDivisionError
- D – Float
- A – 1
- C – str(25)
- B – False
- D – replace()
- A – 3
- C – wick
- B – liste[2]
- D – extend()
- A – 2
- C – x[1] = 9
- B – Letztes Element wird entfernt und zurückgegeben
- D – zahlen.sort()
- A – reverse()
- C – index()
- B – [0, 1, 2, 3]
- D – 1, 2, 3
- A – break
- C – Rest der aktuellen Iteration wird übersprungen
- B – def multipliziere(a, b):
- D – begruesse(name=“Lina“)
- A – return
- C – pip install pandas
- B – String
- D – preis = float(input(„Preis: „))
- A – class Person:
- C – def init(self):
- B – person.name
- D – class Azubi(Mitarbeiter):
- A – import json
- C – json.dumps()
- B – json.load(datei)
- D – Datei wird zum Schreiben geöffnet und Inhalt überschrieben
- A – Korrekte if-, elif- und else-Syntax
- C – p = Person()
- B – p.anzeigen()
- 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.
- Erstellen Sie ein neues Modul
verfolgung.py. - Implementieren Sie darin eine Klasse
Verfolgungmit folgenden Eigenschaften:paket_id(int)status(str), z. B."angekommen","ausgeliefert"oder"verloren"
- Schreiben Sie eine Methode
speichern(self, dateiname), die die Verfolgung in eine Dateiverfolgung.jsonspeichert. - Schreiben Sie eine Funktion
lade_verfolgungen(dateiname), die alle gespeicherten Verfolgungen als Liste zurückgibt. - 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
