Python

Rechenoperationen in Python

Sei die Erste, die diesen Beitrag teilt!

In meinem „echten“ Leben bin ich Mathematikerin und deshalb liebe ich den theoretischen Teil der Informatik und des Programmierens sehr. Ursprünglich wurden Computer (engl. to compute = rechnen) entwickelt, um dem Menschen schwierige und sich wiederholende Berechnungen abzunehmen. Auch heute ist „Rechnen“ die wichtigste Funktion jedes Computers. Jeder Programmcode oder -befehl wird von einem Compiler oder Interpreter in Maschinencode übersetzt, damit der Prozessor weiß was zu tun ist. Maschinencode besteht aus den berühmten Nullen und Eins mit denen der Computer rechnet. Rechnen bildet eine wichtige Grundlage für die Informatik. Deshalb sollten wir uns selbst beim Programmieren auch mit den verschiedenen Rechenausdrücken im Code auskennen. Aus diesem Grund lernen wir in diesem Beitrag alles über Rechenoperationen in Python.


Erinnerung – Numerische Datentypen int, float, complex

Mathematische Operatoren verwenden wir für Zahlen. Zum Beispiel sind 3 + 5 oder 17,5 – 8 einfache Rechnungen. Wir haben die Zahlen 3,5, 8 usw. verwendet. Dabei waren Plus und Minus die „Operatoren“. Mit mathematischen Operatoren meine ich also einfach Rechenoperatoren, die auf Zahlen angewendet werden.

In Python gibt es drei grundlegende Datentypen für Zahlen. Erstmal gibt es ganze Zahlen. Auf englisch heißt ganze Zahl integer und wird in Python mit int abgekürzt. Außerdem gibt es Kommazahlen, genauer Gleitkommazahlen. Übersetzt ist eine Gleitkommazahl eine floating point number, kurz float.

Darüberhinaus gibt es noch komplexe Zahlen, complex numbers, abgekürzt complex. Den allermeisten begegnen komplexe Zahlen erst im Studium oder auch gar nie in ihrem Leben ☺️. Deshalb ist es völlig in Ordnung, wenn du nicht weißt, was damit gemeint ist.

Wichtig für uns sind ganze Zahlen und Gleitkommazahlen, also int und float.

Im Folgenden widmen wir uns jetzt den Rechenoperationen beziehungsweise mathematischen Operatoren, die man auf diese Zahlen anwenden kann und wie der Code dafür in Python lautet.


Grundlegende Rechenoperationen

Fangen wir mit den Basics an. Nämlich mit den Grundrechenarten Plus, Minus, Mal und Geteilt. Diese lassen sich wie in den meisten anderen Programmiersprachen folgendermaßen in Python verwenden.

RechenoperationCode
Plus + +
Minus –
Mal \cdot*
Geteilt \quad \colon bzw. \quad\frac{\cdot}{\cdot}/
Tabelle mit Grundrechenarten in Python

Hier siehst du ein paar Beispiele, die ich in einem Editor eingegeben habe. Links steht der Code und rechts auf der Konsole siehst du das Ergebnis, nachdem ich auf „Run“ gedrückt habe. Um das Ergebnis auf der Konsole anzuzeigen verwende ich die print-Funktion.

Du kannst auch selbst versuchen den Code auf dem Bild zu schreiben. Dabei lernst du am meisten. Wenn du Python nicht auf deinem Computer installiert hast, verwende replit.com oder online-python.com. Dies sind zwei Online-Editoren, die ich auch häufig verwende.

Schauen wir uns das Bild gemeinsam an. Ich lass auf jeder Seite der Operatoren ein Leerzeichen zur Übersichtlichkeit. In der dritten Zeile habe ich damit Punkt-vor-Strich verdeutlicht. Ich habe die Multiplikation ohne Leerzeichen jeweils geschrieben und die Addition mit einem Leerzeichen links und rechts.

Das ist nicht nötig, kann aber der Übersichtlichkeit dienen und verdeutlicht außerdem, was zuerst zusammengerechnet werden muss.

Außerdem sehen wir in der letzten Zeile, dass das Ergebnis der Division eine Kommazahl ist. Das war auch zu erwarten. Nur macht der Operator / in Python immer aus zwei ganzen Zahlen eine Kommazahl, auch wenn es gar nicht nötig wäre.

Diese beiden Dinge wollen wir nochmal vertiefen.



Klammern und Punkt-vor-Strich in Python

Wenn du nichts besonderes hinzufügst, dann folgt Python automatisch der Punkt-vor-Strich-Regel. Das heißt, zuerst wird multipliziert oder dividiert und die Ergebnisse dann addiert oder subtrahiert.

In Zeile 1 habe ich eine Klammer um 3 + 3 gemacht. Python hat verstanden, dass das was in der Klammer steht zuerst berechnet werden muss. Weil 3 + 3 = 6 ergibt, ist das Ergebnis 2 * 6 * 4 = 48, wie auf der Konsole zu sehen ist.

In Zeile 2 und 3 steht ein und dieselbe Rechnung. Python hat automatisch die Punkt-vor-Strich-Rechnung angewendet. Insgesamt folgt also 2 * 3 = 6, 3 * 4 = 12 und damit 6 + 12 = 18.

In Zeile 3 habe ich die Multiplikation ohne Leerzeichen geschrieben, wie im vorherigen Abschnitt bereits erwähnt. Hier wird deutlich, dass dies sehr viel übersichtlicher ist.

Gewöhn dir am besten von Anfang an an, um Operatoren rechts und links ein Leerzeichen zu machen. Also 2 + 3, anstatt 2+3. Um zu verdeutlichen, welche Operation der Reihenfolge nach zuerst kommt, können dafür Leerzeichen weggelassen werden.

Diese Schreibweise mit der richtigen Verwendung der Leerzeichen gehört zum guten Stil und wird im offiziellen PEP 8 — Style Guide for Python Code, der unter Anderem von Python-Entwickler Guido van Rossum geschrieben wurde, empfohlen. Das mit den Leerzeichen findest du in diesem Style-Guide unter „Whitespace in Expressions and Statements -> Other Recommendations“.

Leider ist der PEP 8 Style-Guide auf englisch, aber glücklicherweise gibt es viele deutsche Blogger*innen bzw. YouTuber etc, die diese Dinge auf deutsch erklären.


Division von ganzen Zahlen in Python

Eine weitere Sache über mathematische Operatoren in Python, die ich vorhin schonmal angedeutet hatte ist die Sache mit der Division mit /. Wenn du zwei Zahlen mit dem Operator / dividierst, dann ist das Ergebnis eine Kommazahl. Selbst wenn es sich eigentlich um eine ganze Zahl handeln sollte.

Lass uns in einem Beispiel 6 geteilt durch 2 rechnen. Das Ergebnis ist, wie wir wissen, 3. In Python sieht das Ganze so aus.

Rechts auf der Konsole steht 3.0 – Das bedeutet Python fasst die Zahl 3 nun als float auf. Das ist erstmal nicht weiter schlimm, aber es gibt Situationen in denen wir ausschließlich ganze Zahlen haben wollen.

Deshalb gibt es noch eine weitere Möglichkeit „geteilt“ zu rechnen in Python. Nämlich den Operator //. Verwendest du die zwei Schrägstriche, so erhälst du als Ergebnis immer eine ganze Zahl und zwar die nächst kleinere ganze Zahl des Ergebnisses. Sprich, das Ergebnis wird abgerundet. Man sprich auch von „Ganzzahl-Division“ oder „integer division“ bei dem Operator //.

Schauen wir uns mal an, was passiert ist. In Zeile 1 und 2 wird 6 geteilt durch 2 gerechnet. Wobei wir einmal die übliche Division / und das andere Mal die Ganzzahl-Division // verwendet haben. Tatsächlich kommt bei letzterem nun eine 3 ohne Komma.

In der dritten und vierten Zeile teilen wir 10 durch 3. Das Ergebnis ist 3,333… Der Wert wird von Python gerundet angegeben. Verwenden wir die Ganzzahl-Division wird, wie oben beschrieben, abgerundet und als Ergebnis die Zahl 3 angezeigt.

Kleine Bemerkung: Python verwendet Punkte anstatt Komma, wie es für die englische Schreibweise von Zahlen üblich ist.


Division mit Rest (Modulo-Rechnung)

Wir haben schon bemerkt, die Division ist eine wichtige Rechenoperation in der Informatik. Eine weitere, sehr wichtige Sache ist der Rest, der bei der Division zweier ganzer Zahlen übrig bleibt.

Vielleicht kennst du das noch aus der Schule. Hier ein Beispiel:

5 : 2 = 2 Rest 1.

Aus dem vorherigen Abschnitt wissen wir, dass der Operator // das Ergebnis ohne Rest angibt. Also in diesem Beispiel ist 5 : 2 = 2,5, also würde 5 // 2 = 2 angeben.

Für die Informatik ist allerdings der Rest auch sehr wichtig. Wollen wir wissen, was der Rest der Division 5 : 2 ist, sagen wir 5 „modulo“ 2 zu dem Rest und schreiben 5 % 2 in Python. In unserem Beispiel ist 5 % 2 = 1, weil der Rest den Wert 1 hat.

Wichtig ist diese Modulo-Rechnung beispielsweise um herauszufinden, ob eine Zahl gerade oder ungerade ist. Alle geraden Zahlen haben den Rest 0 bei Division mit 2. Anders ausgedrückt x % 2 = 0 für alle geraden Zahlen x. Und entsprechend kommt für ungerade Zahlen Rest 1 bei Division mit 2.

Schau dir gerne noch folgendes Beispiel dazu an. Wärst du auf die Ergebnisse gekommen?

Der Vollständigkeit halber möchte ich noch kurz den Operator divmod() ansprechen. Dieser gibt sowohl das Ergebnis der Ganzzahldivision, als auch den Rest zweier Zahlen aus. Als Beispiel divmod(13,5)=(2,3), weil die 5 zweimal in die 12 geht und der Rest 3 übrig bleibt.

Hinweis: Der Operator % und divmod(x,y) lässt sich nicht auf komplexe Zahlen anwenden.

Potenzen

Aus den Grundrechenarten ergibt sich noch ein weiterer wichtiger mathematischer Operator in Python. Nämlich die Potenz. Wir erinnern uns

2^3= 2\cdot 2 \cdot 2 = 8 oder 5^2= 5\cdot 5  = 25.

Ich glaub du weißt, was ich meine. In Python schreiben wir hierfür **, also 2**3 ist 2 „hoch“ 3 oder x**y ist x „hoch“ y.

Schau dir folgende Beispiele an. Gib den Code selbst in deinem Python-Editor ein, wenn du möchtest. Kommst du selbst auch im Kopf auf die Ergebnisse, die in der Konsole angezeigt werden?

Hinweis: Eine weitere Methode für die Potenzrechnung ist durch den Befehl pow(x,y) gegeben. Liefert das gleiche Ergebnis wie x**y.

Die Quadratwurzel

Vielleicht weißt du auch noch, dass die Hochzahl \frac{1}{2}=0,5 für die Quadratwurzel einer Zahl steht. Sprich mit x**0.5 erhälst du in Python die Wurzel von x.

Tipp: Falls du dich schon mit Modulen auskennst, kannst du auch einfach das math-Modul laden und den Befehl sqrt() verwenden. Der berechnet auch die Quadratwurzel einer Zahl.

Zusammenfassung: Wichtige Rechenoperationen in Python

Hier nochmal eine Übersicht über mathematische Operatoren in Python bzw. alle Rechenoperationen, die wir in diesem Beitrag kennengelernt haben.

RechenoperationCode
Plus + +
Minus –
Mal \cdot*
Geteilt \quad \colon bzw. \quad\frac{\cdot}{\cdot}/
Ganzzahldivision //
Modulo (Rest der Ganzzahldivision)%
Potenz**
Tabelle mit mathematischen Operatoren in Python

Versuche am besten selbst die Beispiel in diesem Beitrag in einen Code zu schreiben. So lernst du am Besten!

Es gibt noch weitere, etwas fortgeschrittenere Operatoren, die man auf Zahlen in Python anwenden kann. Das sind zum Beispiel abs() für den Absolutbetrag, c.conjugate() für das Komplexkonjugierte einer komplexen Zahl c sowie int(x), float(x), die eine beliebige Zahl in eine ganze Zahl bzw. Gleitkommazahl umwandeln.

Aus meiner Perspektive sind das die wichtigsten mathematischen Operatoren in Python, die man als Anfänger oder gar als Fortgeschrittener können sollte.

Eine detaillierte Übersicht findest du in der offiziellen Python Dokumentation (auf englisch). Dort stehen alle offiziellen Befehle, Regeln und Änderungen in den neuen Python Versionen. Im Moment, in dem ich diesen Beitrag schreibe ist Version Python 3.10 aktuell.

Wenn du deine Python-Skills vertiefen willst, schau dir alle meine Beiträge zum Thema Python an. Bei Fragen oder Anmerkungen, lass gerne ein Kommentar da!

Für dich vielleicht ebenfalls interessant...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert