Berechnungen mit numerischen Datentypen Arithmetische und vergleichende Operatoren in Python

Von Thomas Joos

Arithmetische und vergleichende Operatoren ermöglichen Berechnungen und Vergleiche mit numerischen Datentypen. Im Folgenden schauen wir uns die Operatoren und deren Funktion an.

Anwendung des is-Operators in Python.
Anwendung des is-Operators in Python.
(Bild: Joos / Microsoft)

Arithmetische und vergleichende Operatoren arbeiten zusammen mit numerischen Datentypen wie int (ganze Zahlen), float (Gleitkommazahlen), bool (boolesche Werte) oder complex (komplexe Zahlen).

Zwischen numerischen Datentypen kann auch eine Konvertierung erfolgen. Wollen wir zum Beispiel aus dem Wert 3.14159 eine ganze Zahl generieren, dann funktioniert das mit int(3.14159). Dabei entsteht 3 als neuer Wert. Hierbei arbeiten wir in der Regel aber nicht mit einem Festwert, sondern auch mit Variablen und Wertzuweisungen, zum Beispiel:

x = 3.14159
int(x)

Umgekehrt können wir auch hier das Ergebnis wieder in eine Variable zurückgeben, zum Beispiel mit:

x = 3.14159
y = int(x)

Werte mit diesen Datentypen lassen sich mit arithmetischen und vergleichenden Operatoren bearbeiten. Numerische Datentypen sind allerdings unveränderlich. Wenn mit einem Operator eine Änderung durchgeführt wird, erstellt Python eine neue Instanz des Datentyps.

Arithmetische Berechnungen mit numerischen Datentypen durchführen

Arithmetischen Operatoren dienen dazu, Berechnungen mit numerischen Datentypen durchzuführen. Beispiele dafür sind x + y oder x - y. Produkte lassen sich mit x * y berechnen und Quotienten mit x / y. Um x hoch y zu berechnen wird x**y verwendet.

Operatoren dienen auch dazu, Werte komplett neu zu setzen. Soll zum Beispiel durch die Addition von x + y der Wert x neu gesetzt werden, wird das mit der folgenden Anweisung erledigt: x = x + y. Da in Python häufig solche Berechnungen und Wertänderungen notwendig sind, gibt es erweiterte Möglichkeiten und Abkürzungen.

Der Operator zum eben genannten Beispiel lautet x += y. Soll x aus der Subtraktion von x mit y entstehen, also x = x - y, kann auch der Operator x -= y verwendet werden. Mit x *= y kann x = x * y abgekürzt werden und mit x /= y lässt sich x = x / y abkürzen. Bei den Berechnungen kann y auch durch beliebige Ausdrücke ersetzt werden.

Bei der Verwendung der arithmetischen Operatoren geht Python vor, wie es den mathematischen Regeln entspricht. Klammern können genauso verwendet werden, wie an anderen Stellen auch. Punkt geht auch in Python vor Strich. Soll zum Beispiel eine Wurzel von einem Wert gezogen werden kann zum Beispiel 4 ** 0.5 verwendet werden.

Beispiel einer Rechnung mit Operatoren und Variablen.
Beispiel einer Rechnung mit Operatoren und Variablen.
(Bild: Joos / Microsoft)

Um bei der Berechnung mit Variablen zu arbeiten, um spezielle Berechnungen vorzunehmen, können auch mehrere Variablen verwendet werden, zum Beispiel für die Berechnung der Mehrwertsteuer. Das folgende Beispiel ist programmiertechnisch nicht ideal, zeigt aber die Möglichkeiten, die arithmetische Operatoren bietet:

mwst = 0.19
netto = 100.00
brutto = netto * (1 + mwst)
print(bruttobetrag)

Vergleichende Operatoren nutzen

Mit vergleichenden Operatoren stellen wir Instanzen aus numerischen Datentypen gegenüber, um zum Beispiel Schleifen und Aktionen auszulösen. Die bekanntesten vergleichenden Operatoren lauten == (gleich), != (nicht gleich), < (kleiner), > größer, <= (kleiner gleich), >= (größer gleich).

Mithilfe dieser Operatoren berechnet der Programmcode, ob ein Vergleich wahr ist oder nicht, und führt auf Basis dieser Berechnung weitere Aktionen durch. Auf dieser Basis wiederum können if-Anweisungen verwendet werden, zum Beispiel:

if x = 0
print ("Wert x ist nicht richtig gesetzt, bitte korrigieren")

Natürlich können Vergleiche und Berechnungen auch miteinander verschachtelt werden, um komplexere Strukturen zu erstellen.

Logische Operatoren

Grundsätzlich gibt es die beiden logischen Operatoren „and“ und „or“. Parallel dazu kann das Ergebnis jeweils mit „not“ negiert werden. Beim Einsatz von booleschen Werten, also dem Datentyp „bool“ kann es nur zum Ergebnis „wahr“ (1) oder „falsch“ (0) kommen.

Hier können auch logische Operatoren zum Einsatz kommen, zum Beispiel not x (nicht x, logische Negierung), x and y (logisches x UND y, der Gesamtwert ist nur dann true, wenn x UND y true sind), x or y (logisches x ODER y). Mit der logischen Negierung kann der wert true zu false und false zu true verändert werden.

Die Ergebnisse eines logischen Vergleichs sind in der folgenden Tabelle am Beispiel von „and“ zu sehen:

Ergebnis bei „and“ True False
True True False
False False False

Beim logischen Operator „or“ sieht das Ergebnis folgendermaßen aus:

Ergebnis bei „or“ True False
True True True
False True False

Wenn zum Beispiel der folgende Vergleich verwendet wird, ist das Ergebnis des logischen Vergleiches true:

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung
(1 == 1) and (2 == 2)

Grundsätzlich können hier die Klammern auch weggelassen werden. Allerdings erhöhen diese die Übersicht. Bei arithmetischen Operatoren muss wiederum sichergestellt sein, dass die Berechnungen durch falsch gesetzte Klammern nicht verfälscht werden. Der folgende Vergleich ergibt false:

(1 == 1) and (2 == 3)

Wird hier allerdings mit dem logischen Operator „or“ gearbeitet, dann ist das Ergebnis des oberen Vergleichs true. Bei der Verwendung von „not“ ist das Ergebnis des folgenden Vergleiches false:

not (1 == 1)

Der nächste Vergleich liefert als Ergebnis wiederum true:

(1 == 1) and not (2 == 3)

is-Operator

Arbeiten mit dem Operator „is“.
Arbeiten mit dem Operator „is“.
(Bild: Joos / Microsoft)

Parallel dazu gibt es auch den Operator „is“. Dieser überprüft, ob zwei Variablen identisch ist. Im folgenden Beispiel ist das Ergebnis „false“:

x = 1
y = 2
x is y

Erst wenn die Variablen tatsächlich gleichgesetzt werden, ergibt der Operator true, zum Beispiel mit:

y = 1
x = y
x is y

Die Referenz dieses Operators im Speicher kann mit id(x); und id(y); überprüft werden. Wenn die Speicherreferenz gleich ist, dann gibt x is y auch true zurück. Der Operator „is“ entspricht nicht dem Operator „==“. Bei „is“ ist der identische, physische Wert gemeint. Bei „==“ handelt es sich um den gleichen Wert.

in-Operator

Teilmengen mit Operatoren überprüfen.
Teilmengen mit Operatoren überprüfen.
(Bild: Joos / Microsoft)

Mit dem Operator „in“ kann überprüft werden ob ein Objekt eine Teilmenge eines anderen Objektes ist. Um zum Beispiel zu überprüfen, ob der Wert 10 Teil der Liste 10,20,30 und 40 ist, kann folgendes verwendet werden:

10 in [10,20,30]

Testen lässt sich das, in dem das Ergebnis in einer Variablen gespeichert und danach ausgegeben wird:

y = 10 in [10,20,30
print(y)

(ID:47260818)