5. Unterrichtsblock

Strings: Texte in Python

Strings (Zeichenketten) kennst du seit Block 1: alles, was zwischen Anführungszeichen steht. In fast jedem Programm muss man Texte zerlegen, aufräumen oder schön ausgeben, zum Beispiel Benutzernamen, Passwörter, Chat-Nachrichten oder Kassenbons. Genau darum geht es in diesem Block.

Anführungszeichen und mehrzeilige Strings

Ob du einfache oder doppelte Anführungszeichen nimmst, ist egal. Praktisch: Mit einfachen Anführungszeichen außen kannst du doppelte im Text verwenden. Mit drei Anführungszeichen schreibst du Texte über mehrere Zeilen.

print("Hallo")
print('Hallo')
print('Sie sagte: "Hallo!"')

gedicht = """Rosen sind rot,
Python ist toll."""
print(gedicht)
Ausgabe im Terminal
Hallo
Hallo
Sie sagte: "Hallo!"
Rosen sind rot,
Python ist toll.

Escape-Zeichen

Manche Zeichen kann man nicht direkt in einen String tippen. Dafür gibt es Escape-Zeichen: ein Backslash \ und danach ein Buchstabe oder Zeichen.

ZeichenBedeutung
\nneue Zeile
\tTabulator (Einrückung)
\"doppeltes Anführungszeichen
\'einfaches Anführungszeichen
\\Backslash
print("Name:\tLina\nKlasse:\t10b")
print("Er sagte: \"Python ist einfach!\"")
print("C:\\Schule\\python")
Ausgabe im Terminal
Name:	Lina
Klasse:	10b
Er sagte: "Python ist einfach!"
C:\Schule\python
Merke: In Windows-Pfaden steht der Backslash \. Im String musst du ihn doppelt schreiben (\\), sonst macht Python zum Beispiel aus \n eine neue Zeile.

Länge eines Strings

len() liefert die Anzahl der Zeichen, Leerzeichen und Satzzeichen zählen mit. Aus Block 3 weißt du, dass for einen String Zeichen für Zeichen durchläuft, und aus Block 4, dass in nach einem Teiltext sucht.

wort = "Python"
print(len(wort))
print(len("Hallo Welt!"))
print("th" in wort)
Ausgabe im Terminal
6
11
True

Index und Slicing

Jedes Zeichen in einem String hat eine Position, den Index. Gezählt wird ab 0. Von hinten zählt man mit negativen Zahlen: -1 ist immer das letzte Zeichen.

ZeichenPython
Index012345
von hinten-6-5-4-3-2-1
wort = "Python"
print(wort[0])
print(wort[3])
print(wort[-1])
print(wort[-2])
Ausgabe im Terminal
P
h
n
o

Ausschnitte mit Slicing

Mit [start:ende] schneidest du einen Teil heraus. Lässt du start weg, geht es ab dem Anfang los, lässt du ende weg, bis zum Schluss. Eine dritte Zahl gibt die Schrittweite an: [::2] nimmt jedes zweite Zeichen, [::-1] liest rückwärts.

text = "Hallo, Welt!"
print(text[0:5])
print(text[7:])
print(text[:5])
print(text[-6:])
print(text[::2])
print(text[::-1])
Ausgabe im Terminal
Hallo
Welt!
Hallo
 Welt!
Hlo et
!tleW ,ollaH
Merke: Das Ende ist nie enthalten: text[0:5] liefert die Zeichen mit Index 0 bis 4. Ein einzelner Index außerhalb des Textes (text[50]) erzeugt einen IndexError, beim Slicing (text[5:50]) nimmt Python einfach, was da ist.

Aufgabe 1 – Der Schülerausweis

Zeit: ca. 8 Minuten

Erst denken, dann tippen: Sage bei jeder Zeile die Ausgabe voraus, schreibe sie als Kommentar dazu und prüfe sie danach mit Python.

wort = "Wochenende"
print(wort[0])
print(wort[-1])
print(wort[:5])
print(wort[5:])
print(wort[::-1])
print(len(wort))
  1. Sage jede Ausgabe voraus und prüfe sie. Notiere bei jedem Irrtum kurz, woran es lag.
  2. Ein Schülerausweis hat die Nummer ausweis = "BFS-2026-0473". Schneide mit Slicing das Schulkürzel, das Jahr und die laufende Nummer heraus und gib alles aus. Kontrolle: BFS, 2026, 0473.
  3. Teste dein Programm auch mit "MUC-2026-12". Stimmt die laufende Nummer noch? Wenn nicht: Ändere deinen Slice so, dass er für beide Nummern funktioniert, und erkläre in einem Kommentar, warum.

String-Methoden

Methoden sind Funktionen, die zu einem bestimmten Datentyp gehören. Du hängst sie mit einem Punkt an den String: name.upper(). Die wichtigsten Methoden für Strings:

MethodeWirkungBeispiel → Ergebnis
upper() / lower()alles groß / alles klein"Hallo".upper() → HALLO
capitalize()erster Buchstabe groß, Rest klein"hALLO".capitalize() → Hallo
title()jedes Wort beginnt groß"lina berger".title() → Lina Berger
strip()entfernt Leerzeichen am Rand (lstrip()/rstrip(): nur links/rechts)"  hi  ".strip() → hi
replace(alt, neu)ersetzt alle Vorkommen"Haus".replace("H", "M") → Maus
count(x)zählt, wie oft x vorkommt"Banane".count("a") → 2
find(x) / rfind(x)Position des ersten / letzten Vorkommens, -1 wenn nicht da"Banane".find("n") → 2
startswith(x) / endswith(x)beginnt / endet der Text mit x?"bild.png".endswith(".png") → True
isdigit() / isalpha()nur Ziffern / nur Buchstaben?"2026".isdigit() → True
isupper() / islower()nur Groß- / nur Kleinbuchstaben?"A".isupper() → True
name = "  lina BERGER  "
sauber = name.strip()
print(sauber.title())
print(sauber.upper())
print(sauber.capitalize())
print("[" + name + "]")
Ausgabe im Terminal
Lina Berger
LINA BERGER
Lina berger
[  lina BERGER  ]

Die letzte Zeile zeigt: name selbst hat sich nicht verändert. Strings sind unveränderlich, jede Methode liefert einen neuen String.

satz = "Python ist toll, Python macht Spaß"
print(satz.count("Python"))
print(satz.find("toll"))
print(satz.find("Java"))
print(satz.replace("Python", "Code"))
print(satz.startswith("Py"))
print("2026".isdigit())
Ausgabe im Terminal
2
11
-1
Code ist toll, Code macht Spaß
True
True
Merke: Willst du das Ergebnis einer Methode behalten, musst du es speichern: text = text.strip(). Nur text.strip() allein ändert nichts.

Es gibt noch viele weitere Methoden, zum Beispiel split(), das einen Text in Teile zerlegt. Das Ergebnis ist eine Liste, Listen lernst du ab Block 6 kennen.

Verketten und formatieren

Verketten mit + und *

Mit + hängst du Strings aneinander, mit * wiederholst du einen String. Eine Zahl kannst du aber nicht direkt mit + an einen Text hängen, sie muss erst mit str() umgewandelt werden (siehe Block 2).

vorname = "Lina"
alter = 16
print("Hallo " + vorname + "!")
print(vorname + " ist " + str(alter) + " Jahre alt.")
print("-" * 20)
Ausgabe im Terminal
Hallo Lina!
Lina ist 16 Jahre alt.
--------------------

f-Strings

Bequemer sind f-Strings: Du schreibst ein f vor den String und setzt Variablen oder ganze Rechnungen in geschweifte Klammern. Python wandelt Zahlen dabei automatisch um.

preis = 2.5
anzahl = 3
print(f"{anzahl} Brezeln kosten {anzahl * preis} Euro.")
print(f"{anzahl} Brezeln kosten {anzahl * preis:.2f} Euro.")
Ausgabe im Terminal
3 Brezeln kosten 7.5 Euro.
3 Brezeln kosten 7.50 Euro.

Formatangaben

Hinter einem Doppelpunkt in den geschweiften Klammern legst du fest, wie ein Wert angezeigt wird. So bekommst du Preise mit zwei Nachkommastellen und sauber ausgerichtete Spalten:

AngabeWirkungBeispiel → Ergebnis
:.2fgenau 2 Nachkommastellenf"{3.14159:.2f}" → 3.14
:8mindestens 8 Zeichen breitf"{42:8}" →       42
:<10linksbündig in 10 Zeichenf"{'Tee':<10}|" → Tee       |
:>10rechtsbündig in 10 Zeichenf"{'Tee':>10}|" →        Tee|
:^10zentriert in 10 Zeichenf"{'Tee':^10}|" →    Tee    |
:>8.2fkombiniert: rechtsbündig, 8 breit, 2 Nachkommastellenf"{1.5:>8.2f}" →     1.50
print(f"{'Brezel':<12}{0.85:>8.2f}")
print(f"{'Apfelschorle':<12}{1.9:>8.2f}")
print(f"{'Summe':<12}{2.75:>8.2f}")
Ausgabe im Terminal
Brezel          0.85
Apfelschorle    1.90
Summe           2.75

In älterem Code siehst du oft noch die Methode format(). Sie macht dasselbe, nur stehen die Werte am Ende: "{} ist {} Jahre alt.".format(vorname, alter).

Merke: Für Ausgaben nimmst du f-Strings. :.2f rundet nur für die Anzeige, der Wert in der Variablen bleibt unverändert.

Aufgabe 2 – Das Preisschild

Zeit: ca. 8 Minuten

Die Schulcafeteria druckt Preisschilder für Rabattaktionen.

produkt = "Pizza Margherita"
preis = 8.5
rabatt_prozent = 20
  1. Berechne den neuen Preis nach Abzug des Rabatts.
  2. Gib mit einem einzigen f-String genau diese Zeile aus: Pizza Margherita: 6.80 Euro (statt 8.50 Euro, -20 %)
  3. Was ist der Unterschied zwischen print(f"{preis}") und print(f"{preis:.2f}")? Erkläre ihn in einem Kommentar.

Übungsaufgaben

Jetzt kombinierst du die String-Werkzeuge mit if, while und for aus Block 3 und den Vergleichen aus Block 4. Die Aufgaben 3 bis 7 sind die Kernaufgaben. Wer schneller fertig ist, macht mit den Bonusaufgaben weiter. Teste jedes Programm mit mehreren Eingaben.

Aufgabe 3 – Der Benutzername-Generator

Zeit: ca. 10 Minuten

Die Schule vergibt Benutzernamen nach einer festen Regel: erster Buchstabe des Vornamens, die ersten vier Buchstaben des Nachnamens und die letzten zwei Ziffern des Geburtsjahrs, alles klein geschrieben.

  1. Frage Vorname, Nachname und Geburtsjahr mit input() ab und entferne versehentliche Leerzeichen am Rand.
  2. Baue den Benutzernamen nach der Regel und gib ihn aus. Kontrolle: Lina, Berger, 2008 ergibt lberg08.
  3. Gib zusätzlich die E-Mail-Adresse aus: Benutzername und @bfs-schule.de.
  4. Teste mit „ Tom “, „Li“ und 2009. Was passiert bei einem Nachnamen mit weniger als vier Buchstaben? Erkläre in einem Kommentar.

Zusatz: Umlaute machen in E-Mail-Adressen Probleme. Ersetze ä, ö, ü und ß durch ae, oe, ue und ss, bevor du den Benutzernamen baust. Kontrolle: Jonas, Müller, 2007 ergibt jmuel07.

Aufgabe 4 – Der Passwort-Check

Zeit: ca. 10 Minuten

Ein sicheres Passwort hat mindestens 8 Zeichen, mindestens eine Ziffer, mindestens einen Großbuchstaben und kein Leerzeichen.

  1. Frage ein Passwort ab und prüfe die Länge mit len().
  2. Zähle mit einer for-Schleife über das Passwort, wie viele Ziffern (isdigit()) und Großbuchstaben (isupper()) es enthält.
  3. Prüfe mit in, ob ein Leerzeichen enthalten ist.
  4. Gib für jede verletzte Regel eine eigene Meldung aus, zum Beispiel „Mindestens eine Ziffer fehlt.“, und „Passwort ist sicher.“, wenn alles passt.

Kontrolle: python ergibt drei Meldungen, Python 2026! eine (Leerzeichen), Sommer2026 ist sicher. Zusatz: Wiederhole die Eingabe mit einer while-Schleife, bis ein sicheres Passwort eingegeben wurde.

Aufgabe 5 – Die Chat-Nachricht aufräumen

Zeit: ca. 8 Minuten

Eine Nachricht aus dem Klassenchat soll ordentlich in der Schul-App erscheinen.

nachricht = "   HALLO leute,   morgen treffen wir uns im computerraum!!!   "
  1. Entferne die Leerzeichen am Rand. Danach soll nur der erste Buchstabe groß sein, alles andere klein (capitalize()).
  2. Ersetze „computerraum“ durch „Computerraum 204“ und „!!!“ durch „!“.
  3. Die mehrfachen Leerzeichen nach dem Komma sollen zu einem werden. Ein einzelnes replace(" ", " ") reicht nicht immer. Löse das mit einer while-Schleife und in.
  4. Gib die fertige Nachricht und ihre Länge aus. Kontrolle: „Hallo leute, morgen treffen wir uns im Computerraum 204!“

Zusatz: In der Vorschau der App werden Nachrichten mit mehr als 40 Zeichen gekürzt: die ersten 37 Zeichen und dann „…“. Gib die Vorschau aus.

Aufgabe 6 – Der Kassenbon

Zeit: ca. 10 Minuten

Die Cafeteria braucht einen ordentlichen Kassenbon. So soll er aussehen:

So soll der Bon aussehen
============================
2 x Brezel              1.70
1 x Apfelschorle        1.90
1 x Leberkässemmel      3.20
----------------------------
Summe                   6.80
davon MwSt. 7 %         0.44
============================
artikel_1 = "Brezel"
anzahl_1 = 2
preis_1 = 0.85

artikel_2 = "Apfelschorle"
anzahl_2 = 1
preis_2 = 1.9

artikel_3 = "Leberkässemmel"
anzahl_3 = 1
preis_3 = 3.2
  1. Berechne für jeden Artikel den Gesamtpreis (Anzahl mal Einzelpreis) und die Summe.
  2. Gib den Bon genau wie oben aus: Artikelname linksbündig (:<16), Beträge rechtsbündig mit zwei Nachkommastellen (:>8.2f). Die Linien baust du mit "=" * 28 und "-" * 28.
  3. Die Zeile „davon MwSt. 7 %“ zeigt den Steueranteil, der in der Summe steckt: Summe / 107 * 7.

Zusatz: Frage ab, wie viel bezahlt wurde, und gib das Rückgeld mit zwei Nachkommastellen aus.

Aufgabe 7 – Das Spiegelwort

Zeit: ca. 8 Minuten

Ein Palindrom liest sich vorwärts und rückwärts gleich, zum Beispiel „Anna“ oder „Lagerregal“.

  1. Frage ein Wort ab und drehe es mit Slicing um.
  2. Prüfe, ob das Wort ein Palindrom ist, und gib eine passende Meldung aus. Auch „Anna“ mit großem A soll erkannt werden.
  3. Teste mit Anna, Reliefpfeiler, Lagerregal und Python.

Zusatz: Auch Sätze können Palindrome sein: „Trug Tim eine so helle Hose nie mit Gurt?“ Entferne Leerzeichen und Satzzeichen mit replace(), bevor du prüfst.

Bonusaufgabe 1 – Die Geheimschrift

Bei der Caesar-Verschlüsselung wird jeder Buchstabe um 3 Stellen im Alphabet verschoben: a wird zu d, b zu e und x wieder zu a.

alphabet = "abcdefghijklmnopqrstuvwxyz"
  1. Frage einen Text ab und wandle ihn in Kleinbuchstaben um.
  2. Gehe den Text mit for durch und suche die Position jedes Zeichens mit alphabet.find(zeichen). Zeichen, die nicht im Alphabet stehen (find() liefert dann -1), übernimmst du unverändert.
  3. Baue den Geheimtext mit += zusammen. Tipp: (position + 3) % 26 sorgt dafür, dass nach z wieder a kommt. Kontrolle: „hallo welt“ ergibt „kdoor zhow“.
  4. Entschlüssele den Geheimtext wieder, indem du um 3 Stellen zurückschiebst.

Bonusaufgabe 2 – Der E-Mail-Prüfer

Ein Anmeldeformular soll offensichtlich falsche E-Mail-Adressen ablehnen.

  1. Frage eine E-Mail-Adresse ab und entferne Leerzeichen am Rand.
  2. Prüfe diese Regeln: genau ein @ (count()), die Adresse beginnt und endet nicht mit @ (startswith(), endswith()), nach dem @ kommt noch ein Punkt (find("@") < rfind(".")) und sie enthält kein Leerzeichen.
  3. Speichere das Ergebnis in gueltig (ein einziger boolescher Ausdruck) und gib es aus.
  4. Teste mit lina@schule.de (gültig) sowie lina.schule.de, @schule.de, lina@schule und lina@@schule.de (alle ungültig).
Kurz zusammengefasst:
  • Escape-Zeichen: \n neue Zeile, \t Tabulator, \" Anführungszeichen, \\ Backslash.
  • Index ab 0, -1 ist das letzte Zeichen. [start:ende] schneidet aus, das Ende ist nicht enthalten, [::-1] dreht um.
  • Methoden wie strip(), lower(), replace(), find() liefern einen neuen String, das Original bleibt gleich.
  • f-Strings: f"{name} zahlt {preis:.2f} Euro". :<10 und :>10 richten Spalten aus.

Übungsaufgaben Unterrichtsblock 2 & 5

Zusätzliche Aufgabensammlungen zum Wiederholen von Block 2 (Variablen, Datentypen, Casting) und Block 5 (Strings), zum Beispiel vor einer Kurzarbeit. Einige Aufgaben greifen schon auf Listen, Dictionaries oder try/except vor. Die kannst du überspringen.

# ===============================================
# 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.

Lösungen (bei Lehrkraft anfragen)