Die erweiterten Bindungsanweisungen in Python
Eine erweiterte Bindungsanweisung »x += y« ist eine Abkürzung für »x = x + y«. Es gibt auch »-=«, »*=«, »/=« und »**=«.
»x += 2« bedeutet also beispielsweise »x = x + 2«, »x **= 2« bedeutet »x = x ** 2«, und so weiter.
- Protokoll
x = 0
x += 2
x += 4
x
6
- Protokoll
x = ''
x += '2'
x += '4'
x
'24'
Mit »+=« ist das Anhängen einer Zeichenfolge an eine schon vorhandene Zeichenfolge in vielen Python -Implementation bei der Ausführung eines Programms relativ schnell erledigt.
Syntax
Eine erweiterte Bindungsanweisung besteht aus einem gewöhnlichen Bezeichner, einem erweiterten Bindungssymbol und einem Ausdruck.
- Syntaxdiagramm (vereinfacht)
erweiterte Bindungsanweisung
.--------------------------. .----------------------------. .----------.
--->| gewoehnlicher Bezeichner |--->| erweitertes Bindungssymbol |--->| Ausdruck |--->
'--------------------------' '----------------------------' '----------'erweitertes Bindungssymbol
.--.
---.--->( *= )----.--->
| '--' |
| .--. |
'--->( /= )----'
| '--' |
| .--. |
'--->( += )----'
| '--' |
| .--. |
'--->( -= )----'
| '--' |
| .---. |
'--->( **= )---'
'---'Anweisung
.-------------------------------.
---.--->| Auswertungsanweisung |---.--->
| '-------------------------------' |
| .-------------------------------. |
'--->| from-Importanweisung |---'
| '-------------------------------' |
| .-------------------------------. |
'--->| Bindungsanweisung |---'
| '-------------------------------' |
| .-------------------------------. |
'--->| erweiterten Bindungsanweisung |---'
| '-------------------------------' |
| .-------------------------------. |
'--->| Entbindungsanweisung |---'
'-------------------------------'
Auch die erweiterten Bindungssymbole sind keine Operatoren, sondern syntaktische Begrenzer.
Semantik
Die erweitertet Bindungsanweisung wertet ihren Ausdruck aus. Der Wert des gewöhnlichen Bezeichners und des Ausdrucks wird dann der binären Operation unterworfen, die am Anfang des erweiterten Bindungssymbols vor dem Gleichheitszeichen angegeben ist (dabei gibt der Wert des gewöhnlichen Operators den Wert der linken Stelle und der Wert des Ausdrucks den Wert der rechten Stelle der binären Operation an). Das Ergebnis der Operation wird alsdann an den gewöhnlichen Bezeichner gebunden.
Anforderungen
Die aufgrund der Semantik ausgeführte Operation muß für die Typen der Operanden möglich sein.
Übungsfragen
? Relative Zuweisungen
Welche Ausgabe erzeugt das folgende Programm?
main.py
i = 0
i += 1
i += 1
i += 1
i
Übungsaufgaben
/ Übungsaufgabe
Schreiben Sie einen Quelltext, der den Wert des Namens »w« um sieben Prozent erhöht. Dabei soll eine erweiterte Bindungsanweisung verwendet werden.
- Es kann davon ausgegangen werden, daß der Name »w« zunächst an ein int- oder float-Objekt mit einem Wert zwischen «0» und «1000» gebunden ist.
- Der Quelltext der Lösung soll den Wert des Namens »w« um sieben Prozent erhöhen, egal welchen Wert der Name zuvor hatte.
- Der Quelltext der Lösung darf eine Zeile oder mehrere Zeilen umfassen.
- Wenn der Quelltext der Lösung zweimal hintereinander unverändert ausgeführt wird, dann sollte dies den Wert des Namens also um 14,49 Prozent erhöhen.