Datentypen: Zahlen, Strings, Booleans
Im letzten Artikel hast du gelernt, dass Variablen verschiedene Arten von Daten speichern können: Text, Zahlen, Wahrheitswerte. Diese verschiedenen Arten nennt man Datentypen.
Datentypen sind wichtig, weil Python je nach Typ unterschiedlich mit den Daten umgeht. Eine Zahl kann man zum Beispiel multiplizieren, einen Text nicht (zumindest nicht im mathematischen Sinne).
Die wichtigsten Datentypen
Python hat viele Datentypen. Für den Anfang sind diese vier am wichtigsten:
- int – Ganze Zahlen (Integer):
42,-7,0 - float – Kommazahlen:
3.14,-0.5,2.0 - str – Text (String):
"Hallo",'Python' - bool – Wahrheitswerte (Boolean):
True,False
Ganze Zahlen (int)
Ganze Zahlen sind Zahlen ohne Nachkommastellen. Sie können positiv, negativ oder null sein.
alter = 25
temperatur = -3
anzahl = 0
print(alter) # 25
print(temperatur) # -3
print(anzahl) # 0Mit ganzen Zahlen kannst du rechnen:
a = 10
b = 3
print(a + b) # Addition: 13
print(a - b) # Subtraktion: 7
print(a * b) # Multiplikation: 30
print(a / b) # Division: 3.3333...
print(a // b) # Ganzzahlige Division: 3
print(a % b) # Rest (Modulo): 1
print(a ** b) # Potenz (10 hoch 3): 1000/ ist das Ergebnis immer ein float, auch wenn es eine glatte Zahl ist: 10 / 2 ergibt 5.0, nicht 5.Kommazahlen (float)
Kommazahlen (Fließkommazahlen) haben Nachkommastellen. In Python verwendest du einen Punkt statt eines Kommas:
preis = 19.99
pi = 3.14159
negativ = -0.5
print(preis) # 19.99
print(pi) # 3.14159
print(negativ) # -0.519.99 ist richtig, 19,99 führt zu einem Fehler.Du kannst int und float miteinander verrechnen. Das Ergebnis ist dann ein float:
ganze_zahl = 5
kommazahl = 2.5
ergebnis = ganze_zahl + kommazahl
print(ergebnis) # 7.5Achtung bei Fließkommazahlen
Computer speichern Kommazahlen nicht immer exakt. Das kann zu überraschenden Ergebnissen führen:
print(0.1 + 0.2) # 0.30000000000000004Das liegt an der Art, wie Computer Zahlen intern speichern. Für die meisten Anwendungen ist dieser winzige Unterschied unwichtig. Sei dir aber bewusst, dass Fließkommazahlen nicht immer 100% genau sind.
Text (str)
Strings sind Zeichenketten – also Text. Sie stehen immer in Anführungszeichen:
name = "Anna"
stadt = 'Berlin'
leer = ""
print(name) # Anna
print(stadt) # Berlin
print(leer) # (nichts)Doppelte und einfache Anführungszeichen funktionieren gleich. Ein leerer String "" enthält keinen Text, ist aber trotzdem ein gültiger String.
Anführungszeichen im Text
Was, wenn dein Text selbst Anführungszeichen enthält? Du hast zwei Möglichkeiten:
# Möglichkeit 1: Andere Anführungszeichen außen verwenden
zitat1 = 'Er sagte: "Hallo!"'
zitat2 = "Das ist Anna's Buch"
# Möglichkeit 2: Escape-Zeichen verwenden
zitat3 = "Er sagte: \"Hallo!\""
zitat4 = 'Das ist Anna\'s Buch'
print(zitat1) # Er sagte: "Hallo!"
print(zitat2) # Das ist Anna's BuchDer Backslash \ ist ein Escape-Zeichen. Er sagt Python: "Das nächste Zeichen ist Teil des Textes, nicht das Ende des Strings."
Mehrzeilige Strings
Für Text über mehrere Zeilen verwendest du dreifache Anführungszeichen:
gedicht = """Roses are red,
Violets are blue,
Python is awesome,
And so are you."""
print(gedicht)Ausgabe:
Roses are red,
Violets are blue,
Python is awesome,
And so are you.Wahrheitswerte (bool)
Booleans haben nur zwei mögliche Werte: True (wahr) oder False (falsch). Sie werden für Entscheidungen im Programm verwendet.
ist_aktiv = True
hat_zugang = False
print(ist_aktiv) # True
print(hat_zugang) # FalseTrue und False beginnen mit einem Großbuchstaben. true oder false funktionieren nicht.Booleans entstehen oft durch Vergleiche:
alter = 18
print(alter > 16) # True (18 ist größer als 16)
print(alter < 10) # False (18 ist nicht kleiner als 10)
print(alter == 18) # True (18 ist gleich 18)
print(alter != 20) # True (18 ist ungleich 20)Vergleichsoperatoren lernst du später noch genauer kennen. Hier eine kurze Übersicht:
==– ist gleich!=– ist ungleich<– kleiner als>– größer als<=– kleiner oder gleich>=– größer oder gleich
Den Datentyp prüfen
Mit der Funktion type() kannst du herausfinden, welchen Datentyp ein Wert hat:
print(type(42)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("Hallo")) # <class 'str'>
print(type(True)) # <class 'bool'>Das ist besonders nützlich, wenn du nicht sicher bist, welchen Typ eine Variable hat:
wert = 10 / 2
print(wert) # 5.0
print(type(wert)) # <class 'float'>Dynamische Typisierung
In Python musst du nicht angeben, welchen Typ eine Variable hat. Python erkennt das automatisch am Wert:
x = 42 # x ist ein int
x = "Hallo" # x ist jetzt ein str
x = 3.14 # x ist jetzt ein float
x = True # x ist jetzt ein boolEine Variable kann ihren Typ also jederzeit ändern. Das nennt man dynamische Typisierung.
Typfehler vermeiden
Nicht alle Operationen funktionieren mit allen Typen. Das führt zu Fehlern:
# Das funktioniert nicht:
text = "Die Antwort ist: "
zahl = 42
ergebnis = text + zahl # TypeError!Python kann einen String und eine Zahl nicht einfach zusammenfügen. Du musst die Zahl erst in einen String umwandeln:
text = "Die Antwort ist: "
zahl = 42
ergebnis = text + str(zahl) # "Die Antwort ist: 42"
print(ergebnis)Oder du verwendest einen f-String, der die Umwandlung automatisch macht:
zahl = 42
ergebnis = f"Die Antwort ist: {zahl}"
print(ergebnis)Zusammenfassung
Du hast in diesem Artikel gelernt:
intspeichert ganze Zahlen:42,-7floatspeichert Kommazahlen:3.14(mit Punkt, nicht Komma)strspeichert Text in Anführungszeichen:"Hallo"boolspeichert Wahrheitswerte:TrueoderFalsetype()zeigt den Datentyp eines Wertes- Python erkennt den Typ automatisch (dynamische Typisierung)
Im nächsten Artikel lernst du, wie du Datentypen ineinander umwandeln kannst – zum Beispiel einen String in eine Zahl.