Skip to content

Lösungen: Teil 4 - Datentypen

Lösung 4.1: Datentypen erkennen

python
def verschiedene_typen():
    """Gibt verschiedene Datentypen zurück."""
    ganze_zahl = 42
    komma_zahl = 3.14
    text = "Hallo"
    wahrheit = True
    return ganze_zahl, komma_zahl, text, wahrheit

Erklärung:

  • 42 ist ein Integer (Ganzzahl)
  • 3.14 ist ein Float (Gleitkommazahl)
  • "Hallo" ist ein String (Text)
  • True ist ein Boolean (Wahrheitswert)

Lösung 4.2: String zusammensetzen

python
def strings_verbinden(teil1, teil2):
    """Verbindet zwei Strings."""
    return teil1 + teil2

Erklärung: Der + Operator verbindet Strings (Konkatenation).

Beispiele:

  • strings_verbinden("Hallo", "Welt")"HalloWelt"
  • strings_verbinden("Python", " ist toll")"Python ist toll"

Lösung 4.3: Code Reading

Antworten:

  1. Welche Datentypen werden verwendet?

    • name: String ("Anna")
    • alter: Integer (16)
    • groesse: Float (1.65)
    • ist_schueler: Boolean (True)
    • info: String (zusammengesetzter Text)
  2. Warum muss alter mit str() konvertiert werden?

    Weil der + Operator bei Strings nur Strings verbinden kann. alter ist ein Integer (16), und man kann nicht direkt einen String mit einem Integer verbinden. str(alter) wandelt die Zahl 16 in den String "16" um, damit die Konkatenation funktioniert.

  3. Was gibt das Programm aus?

    Anna ist 16 Jahre alt

Detaillierte Erklärung:

python
name = "Anna"               # String
alter = 16                  # Integer
groesse = 1.65              # Float
ist_schueler = True         # Boolean

# String-Konkatenation mit Typkonvertierung
info = name + " ist " + str(alter) + " Jahre alt."
# info = "Anna" + " ist " + "16" + " Jahre alt."
# info = "Anna ist 16 Jahre alt."

print(info)                 # Ausgabe: Anna ist 16 Jahre alt

Wichtig: Ohne str() würde der Code einen TypeError verursachen, weil man String und Integer nicht mit + verbinden kann.


Lösung 4.4: Debugging

Fehler: In Zeile 3 ist zahl1 ein String ("10"), während zahl2 ein Integer (20) ist. Der + Operator kann diese beiden unterschiedlichen Typen nicht addieren.

Fehlermeldung: TypeError: can only concatenate str (not "int") to str

Korrekte Lösung:

python
def berechne_summe():
    """Berechnet eine Summe."""
    zahl1 = 10      # Integer statt String
    zahl2 = 20
    summe = zahl1 + zahl2
    return summe

# Test
print(berechne_summe())  # Ausgabe: 30

Alternative Lösung (Typkonvertierung):

python
def berechne_summe():
    """Berechnet eine Summe."""
    zahl1 = "10"
    zahl2 = 20
    summe = int(zahl1) + zahl2  # String zu Integer konvertieren
    return summe

# Test
print(berechne_summe())  # Ausgabe: 30

Mit Debugger finden:

  1. Starte den Debugger (F5)
  2. Setze einen Breakpoint bei Zeile 3 (summe = zahl1 + zahl2)
  3. Nutze Step Over (F6), um die Zeile auszuführen
  4. Beobachte im Variables-Fenster:
    • zahl1 hat den Typ str und Wert "10"
    • zahl2 hat den Typ int und Wert 20
  5. Der Debugger zeigt den TypeError an
  6. Die Lösung: Entweder zahl1 = 10 (ohne Anführungszeichen) oder int(zahl1) verwenden

Informatik & ICT Unterricht Neufeld