# Python/ Rechnen

Sobald Python installiert und gestartet ist, können Sie damit Rechnen. Tippen Sie die gewünschte Rechenoperation in die Befehlszeile ein und drücken Sie Enter. Das Ergebnis wird Ihnen in der nächsten Zeile angezeigt.
Hier ein paar Beispiele (probieren Sie es ruhig selbst aus):
Wie Ihnen vielleicht auffällt, wird das Ergebnis unterschiedlich dargestellt, mal als Ganzzahl (6) oder als Gleitkommazahl(11.428571428571429). Dies liegt daran, dass Python unterschiedliche Datentypen für Zahlen nutzt. Bevor wir näher auf dieses Thema eingehen, schauen wir kurz, welche Rechenoperatoren Sie nutzen können.

## Rechenoperatoren

Python stellt Ihnen sieben verschiedene Rechenoperatoren zur Verfügung (die Spalte „Operator“ ist jeweils mit einem Link zur Wikipedia versehen).
| Operator | Symbol | Beispiel | Ergebnis |
| Potenz | ** | 2 ** 3 | 8 |
| Multiplikation | * | 2 * 3 | 6 |
| Division | / | 14 / 3 | 4.666666666666667 |
| Ganzzahlige Division | // | 14 // 3 | 4 |
| Modulo | % | 14 % 3 | 2 |
| Addition | + | 1 + 2 | 3 |
| Subtraktion | - | 10 - 3 | 7 |
Überraschend ist vielleicht ** für die Potenzrechnung, statt des gewohnten 2³. Grund dafür ist schlicht die einfache und schnelle Eingabe über die Tastatur.
Aus dem Alltag ungewohnt (weil selten genutzt) sind Ihnen vielleicht die Division mit Rest und der Modulo (die klassische Division in Zeile eins):
Sie sind aber wichtig für das Verstehen der Datentypen. Folgendes Beispiel aus der Wikipedia soll zur Verdeutlichung dienen:
9 : 4 = 2, Rest 1, da 9 = 4 × 2 + 1 („vier passt zweimal in neun und es bleibt eins übrig“ – der Rest ist also eins)
Möglicherweise sehen sie jetzt schon, wie Sie dieses Beispiel auf Python übertragen können:
* 9//4 = 2 („vier passt zweimal in neun...)
* 9%4 = 1 (...und es bleibt eins übrig“ – der Rest ist also eins)

## Exkurs: Wurzelziehen

Vielleicht fehlt Ihnen in der obigen Auflistung die Möglichkeit, eine Wurzel zu ziehen. Diese Fähigkeit stellt Ihnen Python nicht direkt zur Verfügung, sondern als Teil des "Mathe-Moduls". Der Vollständigkeit halber soll Ihnen hier die Möglichkeit aufgezeigt werden, auch wenn wir damit dem Stoff vorgreifen.
* Sie tippen "import math" ein und drücken Enter (dies müssen Sie einmalig pro Sitzung tun) - eine Rückmeldung erhalten Sie nicht
* Sie nutzen "math.sqrt" und tragen innerhalb der Klammer die Zahl ein
Für die Wurzel aus negativen Zahlen brauchen Sie wiederum ein anderes Modul:
Das Ergebnis wird als komplexe Zahl dargestellt. Mehr dazu später.

## Rangfolge der Operatoren

Wie das folgende Beispiel verdeutlicht, wird das Rechenergebnis durch die Priorität beeinflußt, in welcher die Rechenoperationen durchgeführt werden:
Wie sieht also die Operatorrangfolge in Python aus?
* als erstes werden Klammern ausgewertet
* danach die Potenzen
* Multiplikation/Division/Division mit Rest/Modulo
* als letztes die Addition/Subtraktion
Die Einträge einer Zeile sind dabei gleichberechtigt. Gleichberechtigte Einträge werden von links nach rechts ausgewertet.

## Datentypen I: int und float

Kommen wir zurück zu unserem Eingangsbeispiel:
Python 3 unterscheidet zwischen Ganzzahlen und Gleitkommazahlen. Letztere haben einen gebrochenen Teil hinter dem Dezimaltrennzeichen. Als Dezimaltrennzeichen nutzt Python den Punkt (.), und nicht, wie in Deutschland üblich, das Komma (,). Ein 3.1 entspricht also dem deutschen 3,1. Die beiden Typen werden mit den englischen Wörtern int bzw. integer (Ganzzahlen) und float (Gleitkommazahlen) bezeichnet.
Im Gegensatz zu manch anderen Programmiersprachen nimmt uns Python hier viel Arbeit ab. Dies betrifft besonders die Speicherung (besonders die Reservierung und Freigabe von Arbeitsspeicher). Dies wird im nächsten Kapitel deutlicher werden. Um zu erfahren, welchen Datentyp Phyton ausgewählt hat, nutzen wir den Befehl type:
Als Ergebnis teilt uns Python den jeweiligen Datentyp (class) mit.
Die Leerzeichen hinter „type“ und vor der „2“ sind übrigens absichtlich gewählt um zu zeigen: Python ist clever genug, um sich davon nicht durcheinander bringen zu lassen. Trotzdem ist es natürlich sinnvoll, innerhalb eines Programmes die Leerzeichen nicht willkürlich zu platzieren, allein schon wegen der besseren Lesbarkeit für Menschen. Am Anfang einer Zeile ist die Anzahl der Leerzeichen sogar vorgegeben, wie wir später noch sehen werden.
Exkurs: Vermutlich werden Sie früher oder später über den Datentyp long stolpern. Dieser wurde, in den Versionen vor Python 3, für den Umgang mit und die Speicherung großer Zahlen genutzt. In Python 3 hat int diese Rolle mit übernommen.

## Exkurs: Zahlensysteme

Wir Menschen rechnen hauptsächlich im Dezimalsystem, also dem Zahlensystem auf Grundlage der Zahl 10 (die Anzahl unserer Finger/Zehen). Python akzeptiert aber auch die Eingabe anderer Zahlensysteme, falls Sie Bedarf dafür haben sollten:
| Zahlensystem | Basis | Präfix | Beispiel | in Dezimal |
| Dual-/Binär- | 2 | 0b | 0b11 | 3 |
| Octal- | 8 | 0o | 0o11 | 9 |
| Hexadezimal- | 16 | 0x | 0x11 | 17 |
Das Präfix muss der jeweiligen Zahl vorangestellt werden und beginnt immer mit 0 (Null) und einem Kleinbuchstaben:
Wie Sie sehen können, gibt Python die Zahlen standardmäßig im Dezimalsystem aus.

## Zusammenfassung

Sie haben gelernt, dass Sie Python als Taschenrechner nutzen können. Sie wissen, welche Rechenoperatoren Ihnen zur Verfügung stehen und kennen die Datentypen int und float. Ebenso wissen Sie, wie Sie den Datentyp herausfinden.
Nach diesem doch etwas trockenen Kapitel kommen wir zur den Variablen, und damit zur Interaktion.