DE EN

Variablen & Datentypen

Wie Python Daten speichert, verarbeitet und warum es so viel einfacher ist als du denkst.

45 Min Leicht

Lernziele dieses Kapitels

  • Du erklärst, was eine Variable ist und wie sie funktioniert
  • Du unterscheidest die 4 wichtigsten Datentypen in Python
  • Du nutzt Typumwandlungen (castings) situationsgerecht
  • Du speicherst den PyBuddy-Nutzer in einer Variable

Variablen — beschriftete Kartons

Eine Variable ist wie ein beschrifteter Karton im Lagerhaus deines Computers. Du schreibt drauf, was drin ist (name), wirfst etwas hinein ("Max") und kannst es später über die Beschriftung wiederfinden.

In JavaScript hast du Variablen mit let oder const erstellt. In Python brauchst du gar kein Schlüsselwort — einfach Name, Gleichheitszeichen, Wert. Fertig.

Python
# Python — einfach und direkt
name = "Max"
alter = 16
pi = 3.14159
spieler_aktiv = True
Python vs. JavaScript — Das kennst du schon!

Du kennst bereits JavaScript aus dem JS-Quest. Hier ist der direkte Vergleich:

Python
name = "Max"
alter = 16
JavaScript
let name = "Max";
let alter = 16;
Merke: Python braucht kein let, const oder var. Einfach Name = Wert. Die Typen werden automatisch erkannt!

Die 4 Datentypen, die du kennen musst

Python erkennt den Datentyp automatisch. Du musst nichts deklarieren. Aber du solltest wissen, welche Typen es gibt:

  • str (String): Text in Anführungszeichen — "Hallo"
  • int (Integer): Ganze Zahlen — 42
  • float (Floating Point): Kommazahlen — 3.14
  • bool (Boolean): Wahr/Falsch — True oder False

Mit type() kannst du jederzeit prüfen, welcher Typ in einer Variable steckt.

Python
name = "Python"
alter = 30
groesse = 1.75
aktiv = True

print(type(name))    # <class 'str'>
print(type(alter))   # <class 'int'>
print(type(groesse)) # <class 'float'>
print(type(aktiv))   # <class 'bool'>
Ausgabe
<class 'str'> <class 'int'> <class 'float'> <class 'bool'>

Typumwandlung — wenn Python nicht mitspielt

Manchmal muss du einen Typ in einen anderen umwandeln. Beispiel: input() liefert immer einen String. Wenn du damit rechnen willst, musst du zuerst in int oder float umwandeln.

Das nennt man Type Casting — in Python mit int(), float(), str() oder bool().

Python
# input() liefert immer einen String!
alter_text = "16"

# So geht es NICHT:
# alter_text + 5  → Fehler!

# So geht es RICHTIG:
alter_zahl = int(alter_text)
print(alter_zahl + 5)   # 21

# Und zurück:
preis = 19.99
preis_text = str(preis)
print("Der Preis ist: " + preis_text)
Ausgabe
21 Der Preis ist: 19.99
Python vs. JavaScript — Das kennst du schon!

Du kennst bereits JavaScript aus dem JS-Quest. Hier ist der direkte Vergleich:

Python
zahl = int("16")
text = str(19.99)
JavaScript
let zahl = parseInt("16");
let text = String(19.99);
Merke: Python nutzt int() und str() direkt als Funktionen — in JavaScript brauchst du parseInt() oder String().

Variablen in Aktion: Gaming-Beispiel

Stell dir vor, du programmierst ein kleines RPG. Jeder Spieler hat Werte, die sich ändern — genau dafür sind Variablen perfekt.

Python
# Spieler-Status in einem RPG
spieler_name = "DragonSlayer99"
level = 5
hp = 100
mana = 50.5
ist_online = True

print(f"  Spieler: {spieler_name}")
print(f" Level: {level}")
print(f"  HP: {hp}")
print(f" Mana: {mana}")
print(f" Online: {ist_online}")

# Level-Up!
level = level + 1
hp = hp + 20
print(f" Level-Up! Du bist jetzt Level {level}!")
Ausgabe
Spieler: DragonSlayer99 Level: 5 HP: 100 Mana: 50.5 Online: True Level-Up! Du bist jetzt Level 6!

Gute Namen — die Kunst der Variablen-Namen

In Python gibt es Konventionen für Variablennamen. Sie helfen dir und anderen, den Code zu lesen. Hier sind die wichtigsten Regeln:

  • Nur Kleinbuchstaben, Zahlen und Unterstriche: spieler_name
  • Keine Zahlen am Anfang: 1name ist verboten
  • Keine Leerzeichen — stattdessen Unterstrich: mein_name
  • Beschreibend sein: alter statt a
  • Keine reservierten Wörter: print, if, for sind tabu

Das nennt man snake_case — die Python-Standard-Schreibweise.

Python
#  Gute Namen
spieler_name = "Max"
aktuelles_level = 42
ist_angemeldet = True

#  Schlechte Namen
# x = "Max"        → zu kurz
# 1name = "Max"    → Zahl am Anfang
# mein Name = "Max" → Leerzeichen!
# print = 5        → reserviertes Wort!

Warm-Up: Variablen-Quiz

Schreibe ein Programm variablen.py, das 4 Variablen mit unterschiedlichen Datentypen definiert und deren Typ mit type() ausgibt.

Hinweis: name = "Python" version = 3.11 ist_cool = True anteil = 0.85 print(type(name)) print(type(version)) print(type(ist_cool)) print(type(anteil))

Lösung
name = "Python"
version = 3.11
ist_cool = True
anteil = 0.85

print(type(name))
print(type(version))
print(type(ist_cool))
print(type(anteil))

Challenge: Währungsrechner

Schreibe einen Währungsrechner, der Euro in Dollar umrechnet. Nutze float(input()) für die Eingabe. Wechselkurs: 1€ = 1.08$

Hinweis: euro = float(input("Betrag in Euro: ")) dollar = euro * 1.08 print(f"{euro}€ = {dollar:.2f}$")

Lösung
euro = float(input("Betrag in Euro: "))
dollar = euro * 1.08
print(f"{euro}€ = {dollar:.2f}$")

PyBuddy-Checkpoint: Nutzer-Profil

Erweitere PyBuddy: Speichere den Namen des Nutzers in einer Variable und gib eine personalisierte Begrüßung aus. Das ist der erste Baustein deines Assistenten!

Hinweis: # pybuddy/main.py nutzer_name = "Max" print(f" Hallo {nutzer_name}!") print("Ich bin PyBuddy, dein digitaler Assistent.") print(f"Bereit für deine Befehle, {nutzer_name}!")

Lösung
# pybuddy/main.py
nutzer_name = "Max"

print(f" Hallo {nutzer_name}!")
print("Ich bin PyBuddy, dein digitaler Assistent.")
print(f"Bereit für deine Befehle, {nutzer_name}!")
Didaktische Pause

In The Sims hat jeder Charakter Variablen für Hunger, Energie, Spaß und Sozial. Programmiertechnisch ist das nichts anderes als hunger = 80 — und wenn dein Sim isst, wird der Wert erhöht. Du programmierst gerade die Grundlagen für dein eigenes Spiel!

Zusammenfassung

  • Variablen = beschriftete Kartons für Daten
  • Die 4 Haupttypen: str, int, float, bool
  • Typumwandlung mit int(), float(), str(), bool()
  • Variablen ändern sich während des Programms (Level-Up!)
  • Snake_case: spieler_name, aktuelles_level