3. Unterrichtsblock

Python Strings
Strings (zu Deutsch: Zeichenfolgen) in Python sind entweder von einfachen oder doppelten Anführungszeichen umgeben. Man kann ein String-Literal mit der Funktion print() anzeigen:
# "Hallo" ist dasselbe wie 'Hallo'.
print("Hallo")
print('Hallo')
Zeichenfolge einer Variablen zuweisen
Die Zuweisung eines Strings zu einer Variablen erfolgt mit dem Variablennamen, gefolgt von einem Gleichheitszeichen und dem String:
a = "Hallo"
print(a)
Mehrzeilige Strings
Man kann einer Variablen einen mehrzeiligen String zuweisen, indem man drei Anführungszeichen verwendet:
# Verwendung von drei doppelten Anführungszeichen:
a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(a)
# Oder drei einfachen Anführungszeichen:
a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print(a)
Hinweis: Im Ergebnis werden die Zeilenumbrüche an der gleichen Stelle wie im Code eingefügt.
Strings sind Arrays (zu Deutsch: Ansammlungen)
Wie viele andere beliebte Programmiersprachen sind Strings in Python Arrays (Ansammlungen) von Bytes, die Unicode-Zeichen darstellen. Python hat jedoch keinen Zeichendatentyp, ein einzelnes Zeichen ist einfach ein String mit einer Länge von 1.
Mit eckigen Klammern kann auf Elemente eines Strings zugegriffen werden.
# Ausgabe des Zeichens an Position 1 (Das erste Zeichen hat die Position 0):
a = "Hallo, Welt!"
print(a[1])
Aufgabe
Lasse dir mit o.g. Methode nur den Teil „Welt“ ausgeben.
Strings mit Schleifen durchlaufen
Da Strings Arrays sind, können die Zeichen in einem String mit einer for-Schleife durchlaufen werden.
# Durchlaufen aller Buchstaben des Wortes „Zwetschge“:
for x in "Zwetschge":
print(x)
Aufgabe
Probiere o.g. Code aus.
Über Schleifen lernen wir in einem späteren Unterrichtsblock mehr.
String-Länge
Um die Länge einer Zeichenfolge zu erhalten, verwendet man die len()-Funktion. Die len()Funktion gibt die Länge eines Strings zurück:
a = "Hallo, Welt!"
print(len(a))
Aufgabe
Probiere o.g. Code aus.
Zeichenkette prüfen
Um zu überprüfen, ob eine bestimmte Phrase oder ein bestimmtes Zeichen in einer Zeichenfolge vorhanden ist, können wir das Schlüsselwort in verwenden.
# Überprüfung, ob im folgenden Text "Biergarten" vorhanden ist:
txt = "Unser Wirtshaus bietet neben einer guten Küche auch einen wunderschönen Biergarten."
print("Biergarten" in txt)
Aufgabe
Probiere o.g. Code aus.
Verwendung in einer if-Anweisung:
# Ausgabe erfolgt nur, wenn "Biergarten" vorhanden ist:
txt = "Unser Wirtshaus bietet neben einer guten Küche auch einen wunderschönen Biergarten."
if "Biergarten" in txt:
print("Ja, das Wirtshaus hat einen 'Biergarten'.")
Aufgabe
Probiere o.g. Code aus.
Wir lernen in einem späteren Unterrichtsblock mehr über if-Anweisungen.
Überprüfung auf NOT
Um zu überprüfen, ob eine bestimmte Phrase oder ein bestimmtes Zeichen NICHT in einer Zeichenfolge vorhanden ist, kann das Schlüsselwort not in verwendet werden.
# Überprüfung, ob "Kegelbahn" im folgenden Text NICHT vorhanden ist:
txt = "Unser Wirtshaus bietet neben einer guten Küche auch einen wunderschönen Biergarten."
print("Kegelbahn" not in txt)
Aufgabe
Probiere o.g. Code aus.
Verwendung in einer if-Anweisung:
# Ausgabe soll nur erfolgen, wenn "Kegelbahn" NICHT vorhanden ist:
txt = "Unser Wirtshaus bietet neben einer guten Küche auch einen wunderschönen Biergarten."
if "Kegelbahn" not in txt:
print("Nein, eine 'Kegelbahn' ist nicht vorhanden.")
Aufgabe
Probiere o.g. Code aus.
Strings schneiden
Man kann eine Reihe von Zeichen zurückgeben, indem man die Slice-Syntax verwendet. Hierbei wird der Startindex und den Endindex getrennt durch einen Doppelpunkt angegeben, um einen Teil der Zeichenfolge zu erhalten.
# Ausgabe der Zeichen von Position 2 bis Position 5 (nicht enthalten):
b = "Hallo, Welt!"
print(b[2:5])
Hinweis: Das erste Zeichen hat den Index 0.
Von Beginn an schneiden
Wenn man den Startindex weglässt, beginnt der Bereich beim ersten Zeichen:
# Ausgabe der Zeichen von Anfang bis Position 5 (nicht enthalten):
b = "Hallo, Welt!"
print(b[:5])
Bis zum Ende schneiden
Durch Weglassen des Endindex geht der Schnittbereich bis zum Ende:
# Ausgabe der Zeichen von Position 2 bis zum Ende:
b = "Hallo, Welt!"
print(b[2:])
Negative Indizes
Um dem Schnitt am Ende der Zeichenfolge zu beginnen, werden negative Indexwerte verwendet:
b = "Hallo, Welt!"
print(b[-5:-2])
Aufgabe
Teste die Codes aus dieser Lektion und verwende dabei unterschiedliche Werte & Parameter.
Strings ändern
Python verfügt über eine Reihe integrierter Methoden, die Sie für Zeichenfolgen verwenden können. Die Methoden werden hierbei mit einem „.“ an die zu ändernde Variable angehangen.
# Beispiel: Der Variablenname lautet "a" die Methode wird durch einen "." an die Variable angehängt
print(a.upper())
Großbuchstaben
Die upper()-Methode gibt den String in Großbuchstaben zurück:
a = "Hallo, Welt!"
print(a.upper())
Kleinbuchstaben
Die lower()-Methode gibt den String in Kleinbuchstaben zurück:
a = "Hallo, Welt!"
print(a.lower())
Leerzeichen entfernen
Leerzeichen sind Leerraum vor und/oder nach dem eigentlichen Text, und sehr oft soll dieser Leerraum entfernt werden. Die strip()-Methode entfernt alle Leerzeichen am Anfang oder am Ende:
a = " Hallo, Welt! "
print(a.strip()) # Ausgabe "Hallo, Welt!"
Zeichenfolge ersetzen
Die replace()-Methode ersetzt einen String durch einen anderen String:
a = "Hallo, Welt!"
print(a.replace("H", "J"))
Split-String
Die split()-Methode gibt eine Liste zurück, in der der Text zwischen dem angegebenen Trennzeichen als Listenelemente ausgegeben wird.
Die split()-Methode teilt einen String in Teilstrings auf, wenn das Trennzeichen (hier ein Komma „,“) findet:
a = "Hallo, Welt!"
print(a.split(",")) # Ausgabe ['Hallo', ' Welt!']
Über Listen erfahren wir in einem späteren Unterrichtsblock mehr.
String-Methoden
Liste aller String-Methoden: hier klicken
Aufgabe
Führe o.g. Codes aus, um ein Gefühl hierfür zu bekommen.
Strings verketten
Um zwei Zeichenfolgen zu verketten oder zu kombinieren, kann der + Operator verwendet werden.
Variable a mit Variable b in Variable c zusammenführen:
a = "Hallo"
b = "Welt"
c = a + b
print(c)
Um ein Leerzeichen dazwischen einzufügen, verwendet man " ":
a = "Hallo"
b = "Welt"
c = a + " " + b
print(c)
Aufgabe
Führe o.g. Code aus und teste auch selbst erstellte Befehle.
Strings formatieren
Wie im letzten Unterrichtsblock erwähnt, können Strings und Zahlen nicht wie folgt kombinieren:
alter = 36
txt = "Mein Name ist Max, ich bin " + alter
print(txt)
Aufgabe
Führe o.g. Code aus.
Aber man kann Strings und Zahlen mit der format()-Methode kombinieren.
Die format()-Methode nimmt die übergebenen Argumente, formatiert sie und platziert sie im String, wo sich die Platzhalter {}befinden:
Verwendung der format()-Methode, um Zahlen in Zeichenfolgen einzufügen:
alter = 36
txt = "Mein Name ist Max, und ich bin {}"
print(txt.format(alter)) # Die Variable "txt" wird durch den "." um die Methode "format()" erweitert
Die Methode format () akzeptiert eine unbegrenzte Anzahl von Argumenten und wird in die entsprechenden Platzhalter eingefügt:
anzahl = 3
produktnummer = 567
preis = 49.95
meinebestellung = "Ich kaufe {} Stück von Produktnummer {} für {} EUR."
print(meinebestellung.format(anzahl, produktnummer, preis))
Man kann Indexnummern verwenden, {0} um sicherzustellen, dass die Argumente in den richtigen Platzhaltern platziert werden:
anzahl = 3
produktnummer = 567
preis = 49.95
meinebestellung = "Ich bezahle {2} EUR für {0} Stück von Produktnummer {1}."
print(meinebestellung.format(anzahl, produktnummer, preis))
Aufgabe
Führe o.g. Code-Beispiele aus und teste auch selbst erstellte Befehle.
String-Escape-Zeichen
Um unzulässige Zeichen in einen String einzufügen, verwendet man sogenannte „Escape-Zeichen“. Ein Escape-Zeichen ist ein umgekehrter Schrägstrich, \ gefolgt von dem Zeichen, das man einfügen möchte.
Ein Beispiel für ein unzulässiges Zeichen ist ein doppeltes Anführungszeichen innerhalb eines Strings, welcher von doppelten Anführungszeichen umgeben ist:
# Man erhält eine Fehlermeldung,
# wenn man doppelte Anführungszeichen innerhalb eines Strings verwendet,
# der von doppelten Anführungszeichen umgeben ist:
txt = "Um unzulässige Zeichen in einen String einzufügen kann man sog. "Escape-Zeichen" verwenden."
print(txt)
Um dieses Problem zu beheben, verwendet man das Escape-Zeichen \":
Das Escape-Zeichen ermöglichen es, doppelte Anführungszeichen zu verwenden, wenn dies normalerweise nicht erlaubt wäre:
txt = "Um unzulässige Zeichen in einen String einzufügen kann man sog. \"Escape-Zeichen\" verwenden."
print(txt)
Übersicht der Escape-Zeichen
Andere in Python verwendete Escape-Zeichen:
| Code | Ergebnis |
|---|---|
| \‘ | Einzelnes Zitat |
| \\ | Backslash |
| \n | Neue Linie |
| \r | Rückgabe |
| \t | Tab |
| \b | Rücktaste |
| \f | Formular Feed |
| \ooo | Oktalwert |
| \xhh | Hex-Wert |
String-Methoden
Python verfügt über eine Reihe integrierter Methoden, die man für Strings verwenden kann.
Hinweis: Alle String-Methoden geben neue Werte zurück. Sie ändern den ursprünglichen String nicht.
| Methode | Beschreibung |
|---|---|
capitalize() | Wandelt das erste Zeichen in Großbuchstaben um |
casefold() | Wandelt Strings in Kleinbuchstaben um |
center() | Gibt einen zentrierten String zurück |
count() | Gibt zurück, wie oft ein bestimmter Wert in einem String vorkommt |
encode() | Gibt eine codierte Version des Strings zurück |
endswith() | Gibt true zurück, wenn der String mit dem angegebenen Wert endet |
expandtabs() | Legt die Tabulatorgröße des Strings fest |
find() | Durchsucht den String nach einem bestimmten Wert und gibt die Position zurück, an der er gefunden wurde |
format() | Formatiert angegebene Werte in einem String |
format_map() | Formatiert angegebene Werte in einem String |
index() | Durchsucht den String nach einem bestimmten Wert und gibt die Position zurück, an der er gefunden wurde |
isalnum() | Gibt true zurück, wenn alle Zeichen im String alphanumerisch sind |
isalpha() | Gibt true zurück, wenn alle Zeichen im String im Alphabet enthalten sind |
isdecimal() | Gibt true zurück, wenn alle Zeichen im String Dezimalzahlen sind |
isdigit() | Gibt true zurück, wenn alle Zeichen im String Ziffern sind |
isidentifier() | Gibt true zurück, wenn der String ein Bezeichner (identifier) ist |
islower() | Gibt true zurück, wenn alle Zeichen im String Kleinbuchstaben sind |
isnumeric() | Gibt true zurück, wenn alle Zeichen im String numerisch sind |
isprintable() | Gibt true zurück, wenn alle Zeichen im String druckbar sind |
isspace() | Gibt true zurück, wenn alle Zeichen im String Leerzeichen sind |
istitle() | Gibt true zurück, wenn der String den Regeln eines Titels folgt (bzw. ein Titel ist) |
isupper() | Gibt true zurück, wenn alle Zeichen im String Großbuchstaben sind |
join() | Verbindet die Elemente einer Iterablen mit dem Ende eines Strings |
ljust() | Gibt eine linksbündige Version des Strings zurück |
lower() | Konvertiert einen String in Kleinbuchstaben |
lstrip() | Gibt eine von links getrimmte Version des Strings zurück |
maketrans() | Gibt eine Übersetzungstabelle zurück, die in Übersetzungen verwendet werden soll |
partition() | Gibt ein Tupel zurück, bei dem der String in drei Teile geteilt wird |
replace() | Gibt einen String zurück, in der ein Wert durch einen anderen Wert ersetzt wird |
rfind() | Durchsucht den String nach einem angegebenen Wert und gibt die letzte Position zurück, an der er gefunden wurde |
rindex() | Durchsucht den String nach einem angegebenen Wert und gibt die letzte Position zurück, an der er gefunden wurde |
rjust() | Gibt eine rechtsbündige Version des Strings zurück |
rpartition() | Gibt ein Tupel zurück, bei dem der String in drei Teile geteilt wird |
rsplit() | Teilt den String am angegebenen Trennzeichen und gibt eine Liste zurück |
rstrip() | Gibt eine von rechts getrimmte Version des Strings zurück |
split() | Teilt den String am angegebenen Trennzeichen und gibt eine Liste zurück |
splitlines() | Teilt den String an Zeilenumbrüchen und gibt eine Liste zurück |
startswith() | Gibt true zurück, wenn der String mit dem angegebenen Wert beginnt |
strip() | Gibt eine gekürzte Version des Strings zurück |
swapcase() | Vertauscht Groß- und Kleinschreibung, Kleinschreibung wird Großschreibung und umgekehrt |
title() | Konvertiert das erste Zeichen jedes Wortes in Großbuchstaben |
translate() | Gibt einen übersetzten String zurück |
upper() | Konvertiert einen String in Großbuchstaben |
zfill() | Füllt den String am Anfang mit einer angegebenen Anzahl von 0-Werten |
Aufgabe
String-Zuweisung und Ausgabe:
- Weisen Sie einer Variablen einen String zu und geben Sie ihn mit der
print()-Funktion aus.
Mehrzeilige Strings:
- Erstellen Sie einen mehrzeiligen String mittels dreifacher Anführungszeichen und geben Sie ihn aus.
Auf einen String zugreifen:
- Geben Sie das 4. Zeichen eines Strings aus und nutzen Sie negative Indizes, um das Zeichen an der vorletzten Position zu drucken.
Substring extrahieren:
- Extrahieren Sie mit Hilfe der Slice-Syntax den Wortteil „Welt“ aus dem String „Hallo, Welt!“ und geben Sie ihn aus.
Länge eines Strings ermitteln:
- Bestimmen Sie die Länge des Strings „Python Programmierung“ und geben Sie diese aus.
Zeichenkette überprüfen:
- Überprüfen Sie, ob das Wort „Python“ in dem String „Lernen Sie Python Programmierung“ enthalten ist, und geben Sie das Ergebnis aus.
String manipulieren:
- Verwenden Sie die Methoden
upper(),lower(),strip()undreplace(), um verschiedene Formen eines Strings zu erzeugen.
Strings verketten:
- Verketten Sie zwei Strings „Python“ und „Programmierung“ mit und ohne ein Leerzeichen dazwischen.
String formatieren:
- Verwenden Sie die
format()-Methode, um Variablen in einen Satz einzufügen.
Escape-Zeichen verwenden:
- Kreieren Sie einen String, der doppelte Anführungszeichen enthält und geben Sie ihn aus.
Übungsaufgaben Unterrichtsblock 2 & 3
# ===============================================
# Python-Aufgaben: Variablen, Datentypen, Casting & Strings
# Themen: Variablen, Datentypen, Casting, Stringmethoden, Strings,
# Verketten, Erweitern (+=, format), Schneiden (Slicing)
# ===============================================
# Name: _________________________________
# Datum: ________________________________
#
# Hinweise:
# - Schreibe Deinen Code direkt unter jede Aufgabe.
# - Nutze print() sinnvoll, um Ergebnisse sichtbar zu machen.
# - Ändere Aufgabenstellungen nicht. Kommentiere kurz, wenn etwas unklar ist.
# - Verwende KEINE externen Bibliotheken.
#
# ------------------------------------------------
# AUFGABEN (1–50)
# ------------------------------------------------
# 1) Lege zwei Variablen a und b an (z. B. a = 7, b = "Tag") und gib beide mit einer print-Zeile aus.
# Nutze Komma-Trennung in print().
# 2) Wechsle den Datentyp einer Variablen: Weise x erst eine Zahl, dann einen Text zu und gib type(x) jeweils aus.
# 3) Korrigiere ungültige Variablennamen, so dass sie gültig sind und weise beliebige Werte zu:
# 2zahl = 2, mein-name = "Alex", if = "verboten"
# 4) Erzeuge drei Variablen in EINER Zeile per Mehrfachzuweisung und gib sie aus (Beispiel: stadt, land, kontinent).
# 5) Weise drei Variablen denselben Wert in EINER Zeile zu (x = y = z = ...). Prüfe mit print(), ob alle gleich sind.
# 6) Entpacke eine Liste mit drei Elementen in drei Variablen (unpacking) und gib jedes Element aus.
# 7) Verwende print() mit + zur Verknüpfung von drei String-Variablen. Achte auf Leerzeichen im Ergebnis.
# 8) Demonstriere den Unterschied zwischen print(x + y) und print(x, y), wenn x und y Zahlen sind.
# 9) Bestimme mit type() den Typ folgender Literale und gib ihn aus: 42, 3.14, "42".
# 10) Wandle mit int(), float(), str() geeignete Werte um und gib Ergebnis + type() aus (je zwei Beispiele).
# 11) Versuche, int("vier") auszuführen. Fange den Fehler ab und gib eine verständliche Fehlermeldung aus.
# 12) Lege Beispiele für diese eingebauten Datentypen an und gib jeweils type() aus:
# list, tuple, range, dict, set, frozenset, bool, bytes, None
# 13) Erzeuge einen mehrzeiligen String mit drei Anführungszeichen und gib ihn aus.
# 14) Lege einen String mit einfachen Anführungszeichen und einen mit doppelten an. Gib beide aus.
# 15) Greife per Index auf das 1., 3. und letzte Zeichen eines Strings zu und gib sie aus.
# 16) Verwende len() auf einem String und gib die Länge aus.
# 17) Nutze eine for-Schleife, um alle Zeichen eines kurzen Strings untereinander auszugeben.
# 18) Prüfe mit dem in-Operator, ob ein Teilwort in einem längeren Text vorkommt und gib das boolesche Ergebnis aus.
# 19) Prüfe mit not in, ob ein Teilwort NICHT vorkommt und verwende dies in einer if-Abfrage mit print().
# 20) Schneiden (Slicing): Gib die Zeichen von Index 2 bis 6 (exklusive) eines Strings aus.
# 21) Slicing ohne Startindex: Gib vom Anfang bis Index 5 (exklusive) aus.
# 22) Slicing ohne Endindex: Gib ab Index 4 bis zum Ende aus.
# 23) Slicing mit negativen Indizes: Gib die letzten 4 bis letzten 1 Zeichen (exklusive) aus.
# 24) Erzeuge aus einem String nur jedes zweite Zeichen mithilfe von Slicing mit Schrittweite.
# 25) Kombiniere mehrere Teilstücke eines Strings (z. B. erster Teil + " " + letzter Teil) zu einem neuen String.
# 26) Verwende upper() auf einem String und gib das Ergebnis aus.
# 27) Verwende lower() auf einem String und gib das Ergebnis aus.
# 28) Entferne mit strip() Leerzeichen am Anfang und Ende eines Strings und zeige vorher/nachher.
# 29) Ersetze in einem String ein Zeichen oder Wort durch ein anderes mit replace() und gib beide Varianten aus.
# 30) Zerlege einen String mit split(",") in eine Liste und gib die Liste aus.
# 31) Füge zwei Strings ohne Leerzeichen mit + zusammen. Gib das Ergebnis aus. Füge dann mit + " " ein Leerzeichen ein.
# 32) Verwende die format()-Methode mit genau EINEM Platzhalter {} und fülle ihn mit einer Zahl.
# 33) Verwende die format()-Methode mit DREI Platzhaltern {} in einer sinnvollen Reihenfolge.
# 34) Verwende die format()-Methode mit Indexen {2}, {0}, {1} für eine andere Reihenfolge der Platzhalter.
# 35) Erzeuge einen String mit Anführungszeichen im Inneren mithilfe von Escape-Zeichen (\").
# 36) Erzeuge eine neue Variable s und erweitere sie schrittweise mit += um weitere Teile (mind. 3 Erweiterungen).
# 37) Zeige, dass Strings unveränderlich sind, indem du a.upper() aufrufst und anschließend a erneut ausgibst.
# 38) Baue einen formatierten Bestelltext mit format(), der Menge, Produktnummer und Preis enthält.
# 39) Wandle "5" zuerst in float, dann wieder in str um und gib Zwischentypen mit type() aus.
# 40) Erzeuge eine Variable vom Typ range und wandle sie mit list() in eine Liste um. Gib die Liste aus.
# 41) Lege eine bytes-Variable an (z. B. bytes(4)) und gib sie aus. Gib zusätzlich type() aus.
# 42) Demonstriere, dass Groß-/Kleinschreibung bei Variablennamen unterscheidet (a und A sind verschieden).
# 43) Erzeuge ein dict mit zwei Schlüsseln ("name", "alter") und gib die Werte lesbar mit format() aus.
# 44) Nutze split() und nimm das erste Listenelement, anschließend verknüpfe es mit einem weiteren Wort per +.
# 45) Schneide die ersten 3 und die letzten 3 Zeichen eines Strings ab und verknüpfe den Rest.
# 46) Prüfe, ob ein String mit einem Leerzeichen beginnt oder endet, entferne es mit strip() und belege per print().
# 47) Erzeuge einen String mit \n und \t und gib ihn aus, sodass die Wirkung der Escape-Zeichen sichtbar ist.
# 48) Erzeuge aus zwei Zahlen-Variablen einen Satz mithilfe von format(); vermeide + zwischen Zahl und String.
# 49) Verwende replace(), um die erste Vorkommnis eines Zeichens zu ersetzen, und zeige das Ergebnis.
# 50) Kombi-Aufgabe: Lies einen langen String in variabler s ein. Erzeuge daraus
# a) die Länge, b) den ersten und letzten Buchstaben, c) die mittleren 3 Zeichen (bei ungerader Länge),
# d) eine Version in Großbuchstaben ohne Leerraum am Rand, e) eine Liste der Teilstrings nach Komma,
# und gib alles nacheinander aus.
Lösungen für o.g. Aufgaben (ausgeblendet – bei Lehrkraft anfragen)
Aufgaben Unterrichtsblock 2
# ===============================================
# Python-Prüfung (10 Aufgaben): Variablen, Datentypen, Casting
# ===============================================
# Name: _________________________________
# Datum: ________________________________
#
# Hinweise:
# - Schreibe Deinen Code direkt unter jede Aufgabe.
# - Nutze print(), um Ergebnisse sichtbar zu machen.
# - Verwende KEINE externen Bibliotheken.
#
# ------------------------------------------------
# AUFGABEN (1–10)
# ------------------------------------------------
#
# 1) Lege drei Variablen a, b, c mit den Typen int, float und str an
# (z. B. 7, 2.5, "Start") und gib ihren Wert und Typ mit type() aus.
#
# 2) Wechsle bei der Variablen x nacheinander den Typ (int -> str -> float).
# Gib nach jeder Zuweisung type(x) aus und erkläre kurz in einem Kommentar,
# warum Python das erlaubt.
#
# 3) Mehrfachzuweisung & Unpacking:
# - Weise in EINER Zeile drei Variablen denselben Wert zu.
# - Entpacke anschließend eine Liste wie [1, 2, 3] in drei Variablen
# und gib beide Varianten aus.
#
# 4) Demonstriere korrektes Ausgeben unterschiedlicher Datentypen:
# - Lege x = 5 (int) und y = "Äpfel" (str) an.
# - Zeige zwei korrekte Möglichkeiten, beide in EINER Zeile zu drucken
# (z. B. Komma-Trennung bzw. str()-Casting).
#
# 5) Casting: Gegeben sind die Strings s1 = "15" und s2 = "3.2".
# - Wandle s1 in int, s2 in float um und berechne Summe und Durchschnitt.
# - Gib Ergebniswert und deren Typen aus.
#
# 6) Fehlerbehandlung beim Casting:
# - Fange den Fehler beim Versuch ab, int("Brot") umzuwandeln.
# - Gib eine aussagekräftige Fehlermeldung aus (ValueError).
#
# 7) bool-Casting testen:
# - Erzeuge die Werte 0, 1, "", "Hi" und wandle sie mit bool() um.
# - Gib die Ergebnisse mit Wert und type() aus.
#
# 8) Datentypen anlegen:
# - Erzeuge Beispiele für list, tuple, dict und set.
# - Gib jeweils den Datentyp mit type() aus.
#
# 9) Weitere eingebaute Typen:
# - Erzeuge eine Variable vom Typ bytes (z. B. bytes(4)) und zeige Wert + type().
# - Erzeuge zusätzlich None und gib type(None) aus.
#
# 10) Kombi-Aufgabe (Casting + Typprüfung):
# Gegeben: n1 = "12", n2 = "5.5", n3 = "abc".
# - Konvertiere die numerischen Strings passend (int/float).
# - Ignoriere nicht konvertierbare Werte robust (try/except).
# - Berechne die Summe als float und gib Summe + type() aus.
