Walrus-Operator
Der Walrus-Operator, :=
, ist eine neue Funktion in Python 3.8, die es Ihnen ermöglicht, Werte an Variablen innerhalb eines Ausdrucks zuzuweisen. Der Operator funktioniert indem er die gleiche Syntax wie der Zuweisungsoperator, =
, verwendet, tritt jedoch auf der linken Seite eines Ausdrucks auf.
Hier sind einige Codebeispiele, um Ihnen zu zeigen, wie der Walrus-Operator verwendet wird.
Beispiel 1
## Finden der ersten geraden Zahl in einer Liste mit dem Walrus-Operator
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
if (even := num % 2 == 0):
print(f"Die erste gerade Zahl ist: {even}")
break
## Ausgabe:
## Die erste gerade Zahl ist: True
Dieses Beispiel zeigt, wie der Walrus-Operator verwendet wird, um die erste gerade Zahl in einer Liste zu finden. Die Liste numbers
enthält ganze Zahlen von 1 bis 10. In der for-Schleife
iterieren wir durch die numbers
-Liste und verwenden den Walrus-Operator :=
, um das Ergebnis des Ausdrucks num % 2 == 0
der Variablen even
zuzuweisen. Wenn even
True
ist, bedeutet das, dass num
eine gerade Zahl ist. In diesem Fall wird die if-Anweisung
erfüllt und die erste gerade Zahl wird zusammen mit einer Nachricht ausgegeben. Die break-Anweisung
wird verwendet, um die Schleife zu beenden, wenn die erste gerade Zahl gefunden wird.
Beispiel 2
## Verwenden des Walrus-Operators in einer while-Schleife
counter = 0
while (counter := counter + 1) <= 10:
print(counter)
## Ausgabe:
## 1
## 2
## ……
## 10
In diesem Beispiel verwenden wir den Walrus-Operator in einer while-Schleife
. Die Variable counter
wird auf 0 initialisiert und die while-Schleife
läuft solange counter
kleiner oder gleich 10 ist. In jeder Iteration der Schleife wird der Walrus-Operator verwendet, um den Wert von counter
um 1 zu erhöhen. Der aktualisierte Wert von counter
wird dann in der nächsten Iteration der Schleife verwendet. Die Schleife druckt in jeder Iteration den Wert von counter
aus, was dazu führt, dass die Zahlen von 1 bis 10 ausgegeben werden.
Beispiel 3
## Verwenden des Walrus-Operators in einer List Comprehension
squared_numbers = [num * num for num in range(10) if (even := num % 2 == 0)]
print(squared_numbers)
## Ausgabe:
## [0, 4, 16, 36, 64]
In diesem Beispiel verwenden wir den Walrus-Operator in einer List Comprehension. Die List Comprehension wird verwendet, um eine Liste der Quadrate der geraden Zahlen von 0 bis 9 zu erstellen. Die List Comprehension besteht aus zwei Teilen: einem Ausdruck num * num
und einer bedingten Klausel if (even := num % 2 == 0)
. Der Ausdruck num * num
berechnet das Quadrat der aktuellen Zahl in der Schleife num
. Die bedingte Klausel verwendet den Walrus-Operator, um das Ergebnis des Ausdrucks num % 2 == 0
der Variablen even
zuzuweisen. Wenn even
True
ist, bedeutet das, dass num
eine gerade Zahl ist, und ihr Quadrat wird in die Liste squared_numbers
aufgenommen. Die List Comprehension generiert die Liste [0, 4, 16, 36, 64]
.
Es ist wichtig zu beachten, dass der Walrus-Operator für spezifische Fälle gedacht ist, in denen Sie einen Wert innerhalb eines Ausdrucks zuweisen und diesen gleichen Wert mehrmals verwenden müssen. Er ist nicht dazu gedacht, traditionelle Zuweisungsanweisungen zu ersetzen, und es wird empfohlen, ihn sparsam zu verwenden, um die Lesbarkeit des Codes zu verbessern.