Die Addition »…+…« in Python
Einführendes Beispiel
Eine Summe kann mit der aus der Schule gewohnten Schreibweise als Ausdruck verwendet werden. Die Addition wird mit dem Pluszeichen »+« geschrieben.
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
1 + 1
2
- auf deutsch:
- ● „1 und 1“
- ● „1 plus 1“
- ● „die Summe von 1 und 1“
Syntax
Das folgende vereinfachte Syntaxdiagramm zeigt die bisher vorgestellten Operatoren mit Produktionsregeln, die in Reihenfolge abnehmender Priorität angeordnet sind.
- Syntaxdiagramm (vereinfacht)
Ausdruck
.---------.
--->| Literal |--->
'---------'Ausdruck
.-. .----------. .-.
--->( ( )--->| Ausdruck |--->( ) )--->
'-' '----------' '-'Ausdruck
.----------. .--. .----------.
--->| Ausdruck |--->( ** )--->| Ausdruck |--->
'----------' '--' '----------'Ausdruck
.-. .----------.
---.--->( + )---.--->| Ausdruck |--->
| '-' | '----------'
| .-. |
'--->( - )---'
'-'Ausdruck
.----------. .-. .----------.
--->| Ausdruck |---.--->( * )---.--->| Ausdruck |--->
'----------' | '-' | '----------'
| .-. |
'--->( / )---'
'-'Ausdruck
.----------. .-. .----------.
--->| Ausdruck |--->( + )--->| Ausdruck |--->
'----------' '-' '----------'
Sind A und a Ausdrücke, so ist A +a wieder ein Ausdruck, der Summe von A und a genannt wird (vereinfacht gesagt). Dabei wird A auch Augend und a Addend genannt.
Man beachte, daß wir jetzt zwischen einem unären und einem binären Plus-Operator unterscheiden müssen!
Typanforderungen
Der Augend und der Addend kann jeweils einen numerischen Typ (»int« oder »float«) haben.
Semantik (Wert)
Typsemantik
Ist der Typ beider Operandenwerte die Klasse »float«, hat der Ergebniswert ebenfalls die Klasse »float« als Typ. Ist der Typ beider Operandenwerte »int«, hat der Ergebniswert ebenfalls die Klasse »int« als Typ.
Ist der Typ des einen Operanden »float« und der des anderen »int«, so hat der gesamte Ausdruck die Klasse »float« als Typ.
- Typsemantik
- int + int → int
- float + … → float
- … + float → float
Wertsemantik
Bei der Auswertung einer Addition werden zunächst beide Operanden von links nach rechts ausgewertet. Der Wert eines Additionsausdrucks mit numerischen Operanden ist dann die Summe der Werte jener beiden Operanden.
Hat mindestens ein Operand die Klasse »float« als Typ, so erfolgt die Addition mit Nachkommastellen.
Beispiele
Beispiel zur Addition von int-Werten
Das folgende Beispiel zeigt eine Addition zweier int-Werte.
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
1 + 1
2
Beispiel zur Addition von float-Werten
Das folgende Beispiel zeigt eine Addition zweier float-Werte.
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
1. + 1.
2.0
Beispiel zur Addition von float-Werten und int-Werten
Die folgenden Beispiele zeigen die Addition eines int- und eines float-Werts.
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
1 + 1.
2.0
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
1. + 1
2.0
? Ausdrücke _
Welcher der folgenden Ausdrücke hat denselben Wert wie »1 / 2+3«?
- »1/( 2+3 )« Anton
- »( 1/2 )+ 3« Berta
? Lexikalische Einheiten _
Eine lexikalische Einheit ist eine Literal oder Operator, der Klammeroperator besteht jedoch aus zwei lexikalischen Einheiten.
Aus wie vielen lexikalischen Einheiten besteht der folgende Ausdruck?
- Ausdruck
2*(3+14)
Übungsaufgaben
/ Terme _
Die in der Mathematik vorkommenden Schreibweisen für Werte werden Terme genannt. In Python verwendet man keine Terme. Die Ausdrücke von Python haben aber Ähnlichkeit mit Termen. Viele Terme lassen sich auch als Ausdruck schreiben und umgekehrt.
Schreiben Sie möglichst kurze Ausdrücke für die folgenden Terme, ohne vorher irgendwelche Teile der Terme im Kopf auszurechnen. Die Werte der Ausdrücke sollten den mathematischen Werten der vorgegebenen Terme möglichst nahe kommen, also den Werten, die man in der Grundschule als Werte der Terme ansehen würde.
- Term (Ein Halb plus drei Viertel, als richtig gilt ein Ergebnis von zirka »1.25«)
1 3
--- + ---
2 4- Term (Drei plus Vier im Zähler und Fünf plus Sechs im Nenner, als richtig gilt ein Ergebnis von zirka »0.6363636363636364«)
3 + 4
---------
5 + 6
Negative Operanden bei der Rest-Operation *
Der Rest für negative Zahlen ist so beschaffen, daß die Addition des durch den zweiten Operanden geteilten Rests zum Ergebnis der ganzzahligen Division das Ergebnis der Division mit Nachkommastellen ergibt.
- Auswertung
+1 / +2
0.5
+1 // +2 + +1 % +2 / +2
0.5
- Auswertung
-1 / +2
-0.5
-1 // +2 + -1 % +2 / +2
-0.5
- Auswertung
+1 / -2
-0.5
+1 // -2 + +1 % -2 / -2
-0.5
- Auswertung
-1 / -2
0.5
-1 // -2 + -1 % -2 / -2
0.5
Unäre und binäre Operatoren ⃗
In einem Ausdruck kann man immer erkennen, wann eine lexikalische Einheit für einen unären und wann sie für einen binären Operator steht, so daß Ausdrücke in dieser Hinsicht immer eindeutig interpretierbar sind.
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
1 + + 2
3
Im obigen Ausdruck muß das erste Plus »+« binär sein, da nur ein binäres Plus einem Ausdruck (hier: dem Ausdruck »1«) direkt folgen darf. Würde man das zweite Plus »+« als binär ansehen, so müßte »1 +« sein erster Operand sein, was aber nicht geht, da dies ja gar kein Ausdruck ist und ein Operand immer ein Ausdruck sein muß.
Gemischte Zahlen ⃗
Eine Schreibweise wie ‹ 1½ › nennt man eine gemischte Zahl. ‹ 1½ › bedeutet ‹ 1 + ½ › und nicht : ‹ 1 × ½ ›. Das folgende Programm gibt den Wert jener gemischten Zahl aus.
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
1 + 1/2
1.5
Literale, die Operatorzeichen enthalten ⃗
Wenn ein float-Numerale mit der E-Schreibweise geschrieben wird, so darf hinter dem »E« auch ein Vorzeichen für den Exponenten stehen, wie beispielsweise in »2E+3« für ‹ 2 × 10⁺³ › (mit demselben Wert wie »2E3«, ‹ 2 × 10³ ›)
Das Literal »2E+3« ist also keine Summe, sondern bedeutet ‹ 2 × 10⁺³ ›. Um Summen deutlich von solchen Literalen mit einem inneren Pluszeichen oder einem inneren Minuszeichen zu unterscheiden, bietet es sich an, die binären Operatoren »+« und »-« mit einem umgebenden Leerzeichen zu verwenden.
- Beispiele
2+2E+3+3
2 + 2E+3 + 3
Hier hilft die Formatierung (also die Gestaltung des Quelltextes mit Hilfe von Leerraum) wirklich beim Lesen!