Empfohlene Unterrichtsinhalte als Vorbereitung für dieses Thema: 02-01/2/3/4/5 (Variablen, Strings, Listen, Integers und Floats, Bool)
None
¶Es gibt in Python einen speziellen Datentyp namens None, der leere Objekte bezeichnet, die keinen anderen Datentyp haben.
print(type(None))
# Leere Listen, Strings usw. haben ihren erwarteten Datentyp:
print(type([]))
print(type(""))
Oft haben Methoden, die z.B. auf veränderlichen Objekten operieren, den Rückgabetyp None - es muss immer einen Rückgabetyp geben, und None bekommen wir, wenn nichts anderes zurückgegeben wird. Wenn Sie also eine Fehlermeldung wie die folgende sehen…
for i in [1,2,3].append(4):
print(i) # :(
… liegt das mit hoher Wahrscheinlichkeit daran, dass das Ergebnis der Methode append() vom Typ None ist und nicht - wie im Codebeispiel sinnvoll wäre - eine Liste.
Damit der Code ohne Fehler ausgeführt wird, können wir beispielsweise folgendes schreiben:
for i in [1,2,3] + [4]:
print(i) # :)
Hier übrigens der Grund, warum der erste Versuch schiefgegangen ist: Das Ergebnis der append()-Methode hat den Rückgabetyp None.
print(type([1,2,3].append(4)))
None kann auch als Boolean ausgewertet werden und hat dann den Wert False. Das ist auch bei leeren Strings, leeren Listen und der Zahl 0 der Fall:
print(bool(None))
print(bool([]))
print(bool(""))
print(bool(0))
print("-----------")
print(bool([5,3,1]))
print(bool("String mit Inhalt"))
print(bool(-10))
Wenn wir mitten in unserem Programm den Wert einer Variable ausgeben lassen und None
angezeigt wird, wissen wir, dass etwas nicht geklappt hat. Wir müssen in so einem Fall alle Stellen, an denen der Wert der Variable verändert wurde, daraufhin überprüfen, ob eventuell keine Rückgabe geliefert wurde und daher None
der Wert der Variable ist.
None
ist der Datentyp für leere Objekte in Python.None
zurück.None
wird auf den Boolean-Wert False
abgebildet.