Vorlesungsskript 11
Zuweisungen und Löschanweisungen
Python-Programme bestehen aus Anweisungen (engl. statements). Alles, was man im interaktiven Modus am Prompt des Python-Interpreters eingeben und durch Drücken von Enter ausführen lassen kann, ist eine Anweisung.
Wir kennen bereits verschiedene Sorten von Anweisungen:
- Eine Anweisung, die einfach nur aus einem Ausdruck besteht, ist
vor allem im interaktiven Modus nützlich, weil ihr Rückgabewert
dann direkt angezeigt wird (sofern er nicht
None
ist). - Zuweisungen weisen einer Variablen einen Wert zu.
- Auch haben wir bereits
for
-Schleifen undimport
-Anweisungen gesehen, ohne sie genau zu besprechen (dazu später). Auch das sind Sorten von Anweisungen.
In diesem Vorlesungsskript lernen wir einige weitere Sorten von Zuweisungen kennen sowie eine weitere Sorte von Anweisungen: Löschanweisungen.
Zuweisungen
Neben der einfachen Zuweisung mit =
gibt es zu
jedem der Operatoren
+
,
-
,
*
,
/
,
//
,
%
und
**
einen speziellen Zuweisungsoperator:
+=
,
-=
,
*=
,
/=
,
//=
,
%=
und
**=
.
Hiermit kann man mit dem Wert einer Variablen eine Berechnung (oder andere
Operation) durchführen und das Ergebnis sofort derselben Variablen zuweisen.
Zum Beispiel macht die Zuweisung a += 1
dasselbe
wie die Zuweisung a = a + 1
. Die kürzere Schreibweise
macht den Code etwas kompakter. Sie wird vor allem für Variablen verwendet, die
sich häufig auf dieselbe Weise ändern. Zum Beispiel könnten wir unser Zeilen
zählendes Programm aus Vorlesungsskript 06 auch wie folgt
schreiben:
import sys
line_count = 0
for line in sys.stdin:
line_count += 1
print(line_count)
Weitere Beispiele für die Wirkung der Zuweisungsoperatoren:
>>> a = 1
>>> a += 2
>>> a
3
>>> a -= 1
>>> a
2
>>> a *= 7
>>> a
14
>>> a /= 2
>>> a
7
>>> a //= 2
>>> a
3
>>> a %= 2
>>> a
1
>>> a = 2
>>> a **= 3
>>> a
8
>>> s = 'A'
>>> s *= 5
>>> s
'AAAAA'
>>> s += 'BBBBB'
>>> s
'AAAAABBBBB'
In späteren Vorlesungsskripten werden wir noch weitere Sorten von Zuweisungen kennenlernen, speziell für Listen und Dictionarys.
Löschanweisungen
Mit dem Schlüsselwort del
(für delete),
gefolgt vom Namen einer Variablen, wird die Variable wieder gelöscht. Sie hört
dann auf zu existieren, und weitere Versuche, auf sie zuzugreifen, geben eine
Fehlermeldung, genau so, wie wenn sie nie definiert worden wäre:
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> a = 3
>>> a
3
>>> del a
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
In der Praxis muss man fast nie Variablen explizit löschen. Sie werden am Ende des Programms automatisch gelöscht. Wir werden jedoch später noch weitere Sorten von Löschanweisungen kennenlernen, mit denen Elemente aus Listen und Dictionarys gelöscht werden können.