Der Wertevergleich in Python
Beispiele
Der Operator »==« ergibt, ob beide Operanden den gleichen Wert haben.
- Protokoll
2 == 3
False
Beispiel
- Auswertung
0.1 + 0.1 + 0.1 == 0.3
False
Kleine Fehler bei der Darstellung von Dezimalbrüchen führen hier zu dem „mathematisch falschen“ Ergebnis. Es wird aber auch nur selten benötigt zu wissen, ob zwei Werte aus einem Kontinuum gleich sind.
Beispiel
- Auswertung
'abc' == 2
False
Es ist ziemlich klar, daß die Zeichenfolge »abc« nicht die Zahl «2» ist.
Beispiel
- Auswertung
'a' == 'A'
False
Groß- und Kleinschreibung wird unterschieden.
Beispiel
Die Bedeutung des folgenden Mehrfachvergleichs ist „14 ist gleich 12, und 12 ist gleich 28.“.
- Auswertung
14 == 12 == 28
False
- Auswertung
14 == 14 == 14
True
Dabei wird jeder Operand nur einmal ausgewertet.
Syntaktische Eigenschaften
- Eigenschaften von Operatoren – Operatoren höherer Priorität stehen weiter oben
S P A (S = Stelligkeit ("Aritaet"), P = Infix-/Präfix-, A = Assoziativitaetsrichtung)
() 1 Z Eingeklammerter Ausdruck
** 2 I R Potenzieren
+ - 1 P Unaere vorangestellte Operatoren (Vorzeichen)
* / 2 I L "Punktrechnung": Multiplikation, Division
+ - 2 I L "Strichrechnung": Addition, Subtraktion
== 2 I Gleichheit
Typanforderungen ⃗
Werte aller möglicher Typen können verglichen werden.
Semantik ⃗
Typergebnis
Der Wert eines Vergleichs ist eines der beiden Wahrheitsobjekte ›True‹ oder ›False‹.
Ermittlung des Werts ⃗
Zunächst werden die Werte aller Operanden ermittelt.
Anschließend werden alle einzelnen Vergleiche (bei einer Liste mehrerer Vergleiche) paarweise durchgeführt. Genau dann, wenn alle Vergleiche ›True‹ ergaben, ist das Endergebnis ›True‹.
Die Python -Spezifikation legt nicht für alle möglichen Vergleiche zwischen Objekten voneinander verschiedenen Typen Ergebnisse fest. Wir behandeln im folgenden einige wichtige Fälle:
Beim Vergleich zweier Zahlen wird der Zahlenwert verglichen. Hier sind auch Vergleiche zwischen »int« und »float« möglich.
- Auswertung
27 == 27.0
True
Beim Vergleich zweier Zeichenfolgen wird geprüft, ob beide zeichenweise übereinstimmen.
- Auswertung
'abc' == 'axc'
False
Beim Vergleich zweier Wahrheitswerte wird geprüft, ob beide gleich sind.
- Auswertung
True == False
False
Genaue Syntax ⃗
- Syntaxdiagramm
Vergleich
.--------------------.
--->| additiver Ausdruck |---.------------------------------------------------------.--->
'--------------------' ^ |
| .--------------------. .--------------------. |
'---| additiver Ausdruck |<---| Vergleichsoperator |---'
'--------------------' '--------------------'Vergleichsoperator
.--.
--->( == )--->
'--'Ausdruck
.-----------.
--->| Vergleich |--->
'-----------'
Das Syntaxdiagramm stellt klar, daß die Priorität von Vergleichsoperatoren kleiner als die der anderen bisher behandelten Operatoren ist und daß ein Mehrfachvergleich weder links- noch rechtsassoziativ verstande sein soll.
Übungsaufgaben
/ Übungsaufgabe
Ermitteln Sie, ob das Objekt ›True‹ als gleichwertig zum Wert «1» gilt, und ob der Wert «1» als gleichwertig zum Wert «1.0» gilt.