· 

Der Walross-Operator in Python

1. Einführung

Mit Python 3.8 kommt ein neues Feature, das die Lesbarkeit und das intuitive Schreiben von Code erleichtern wird: der Walross-Operator. Warum Walross? Nun, der Operator sieht wie folgt aus: 

:=

Dreht man den Operator um 90°, dann erkennt man mit ein wenig Phantasie das Gesicht eines Walross. Doch was kann dieser neue Operator eigentlich?


2. Der Walross-Operator

Bei der Programmierung bist du bestimmt schon auf das Problem gestoßen, dass du in einer if-Anweisung oder einer while-Schleife den Wert einer Variablen überprüfen möchtest, die zuvor aber erst (z. B. durch eine Eingabeaufforderung über die Konsole) eingelesen werden muss. Mit dem Walross-Operator kannst du die Zuweisung an eine Variable und das Auswerten des Werts dieser Variable nach der Zuweisung in einer Zeile erledigen.


3. Beispiel

Mal angenommen, du möchtest für einen Kurs eine Teilnehmerliste erstellen. Hierfür erstellst du dir zu Beginn eine leere Liste. Nehmen wir an, dass die Abfrage von Teilnehmern erst dann enden soll, wenn der Benutzer ein "X" eingibt. Ohne den Walross-Operator würdest du jetzt zunächst eine Variable teilnehmer definieren, ihr das Ergebnis der input-Abfrage zuweisen und den Wert dann in der while-Bedingung überprüfen. 

teilnehmerliste = []
teilnehmer = input()

while teilnehmer != "X":

Innerhalb des while-Blocks musst du jetzt allerdings erneut den Teilnehmer über input abfragen, da sich sonst der Wert der Variable teilnehmer nicht mehr ändert. Der eingelesene Teilnehmer wird dann der Liste hinzugefügt und diese am Ende ausgegeben: 

teilnehmerliste = []
teilnehmer = input()

while teilnehmer != "X":
   teilnehmer = input()
   teilnehmerliste.append(teilnehmer)

Diese Vorgehensweise widerspricht dem DRY Prinzip, das "Don't repeat yourself" besagt. Kopierter Code ist ein Indikator dafür, dass dein Programm nicht sauber durchdacht ist. 

Mit dem Walross-Operator kann hier Abhilfe geschaffen werden. Statt den Teilnehmer erst außerhalb und dann noch einmal innerhalb der while-Schleife abzufragen, kannst du mit dem Operator innerhalb der while-Bedingung den Wert, den input zurückliefert, in der Variable teilnehmer speichern und diese dann auf den Wert "X" überprüfen. Um den Input-Ausdruck müssen Klammern geschrieben werden, da andernfalls das Ergebnis der Auswertung input( ) != "X" der Variable teilnehmer zugewiesen wird. So wird innerhalb der while-Schleife nicht noch einmal die Abfrage und das Speichern des Teilnehmers benötigt, da dies bereits alles in einer Zeile innerhalb der while-Bedingung erfolgt. Die einzige Instruktion innerhalb der while-Schleife ist dann das Speichern des eingelesenen Teilnehmers in der Teilnehmerliste.

teilnehmerliste = []

while (teilnehmer := input()) != "X":
   teilnehmerliste.append(teilnehmer)

print(teilnehmerliste)

Zum Schluss kannst du dir die Liste ausgeben lassen und so überprüfen, ob die beiden Programm dasselbe Ergebnis liefern.