Python. Der Sprachkurs für Einsteiger und Individualisten. Willemer Arnold V.

Чтение книги онлайн.

Читать онлайн книгу Python. Der Sprachkurs für Einsteiger und Individualisten - Willemer Arnold V. страница 7

Python. Der Sprachkurs für Einsteiger und Individualisten - Willemer Arnold V.

Скачать книгу

19.

      MWSt = 19

      Die Variable MWSt enthält anschließend den Wert 19 und hat einen ganzzahligen Typ. Intern nennt Python diesen Typ int.

      Python schreibt vor, dass eine Variable durch eine Zuweisung definiert worden sein muss, bevor sie ausgewertet werden darf. Es wäre ja auch blöd, mit einem Inhalt zu arbeiten, der gar nicht da ist. Dadurch fallen aber auch manchmal Vertipper auf. Der Versuch, nach der obigen Zuweisung auf die Variable MWST zuzugreifen, führt zu einem Programmabbruch, weil deren Name ein großes T hat und ihr also noch kein Wert zugewiesen wurde.

3.1 Verschiedene Zahlen

      Python kennt grundsätzlich zwei Arten von Zahlen. Das eine sind die ganzen Zahlen und das andere die kaputten. Die kaputten Zahlen werden in der Mathematik auch Brüche genannt. Für die Darstellung verwenden wir allerdings selten Brüche, sondern Nachkommastellen. Nachkommastellen sind aber eigentlich Brüche mit einem Nenner, der sich aus einer Potenz von 10 ergibt.

      Hinweis

      Wenn es ganz genau sein muss, gibt es in Python auch noch ein Paket, das dem Computer beibringt, mit Dezimalbrüchen zu rechnen. In Abschnitt 13.3 erfahren Sie mehr.

      Wenn Programmierer einfach eine Zahl in einem Programm eingeben, sprechen sie übrigens von einem Literal.

      Darstellung einer Fließkommazahl

      Eine Fließkommazahl beginnt ganz harmlos wie jede normale ganze Zahl. Vielleicht mit einem Vorzeichen, dann einige Ziffern. Dann tritt ein Punkt auf und alle folgenden Ziffern sind Nachkommastellen. Es könnte auch ein großes oder kleines E erscheinen. Dieses leitet den Exponenten zur Basis 10 ein. Sie kennen das von Ihrem Taschenrechner. Dadurch kann eine Fließkommazahl verdammt groß werden. Aber auch der Exponent kann ein Vorzeichen tragen. So steht 1E-3 für 0,001, also ein Tausendstel. Wenn der Exponent noch negativer wird, wird die Zahl verdammt klein.

      ganzklein = 0.00000456

      print(ganzklein) # gibt 4.56e-06 aus

      Sie sehen, wie der Variablen a ein sehr kleiner Dezimalbruch zugewiesen wurde. Python rückt das in der Ausgabe so zurecht, dass die erste Stelle vor dem Komma oder besser Punkt steht und die Verschiebung hinter das Komma durch den negativen Exponenten ausgedrückt wird. Der Wert ist der gleiche geblieben, nur die Darstellung nicht.

      Warnung

      Wie die meisten Programmiersprachen verwendet Python kein Komma, sondern einen Punkt, wie er im englischsprachigen Raum üblich ist. Das betrifft auch die Ein- und Ausgaben des Programms. Python wird Sie nicht verstehen, wenn Sie mit einem Komma mitten in einer Zahl auftauchen!

      Wenn Sie deutlich machen wollen, dass eine 2 von Python bitte als Fließkommazahl zu behandeln sein soll, hängen Sie einfach noch eine Nachkommstelle an und schreiben Sie 2.0.

3.2 Mathematische Ausdrücke

      Python kann Zahlen und Variablen miteinander verrechnen. Für die Addition verwendet Python ein + und für die Subtraktion ein – . Das wird Sie nicht überraschen. Selbst mein Taschenrechner macht das so.

      karten = 17 + 4

      Wenn die Variable karten nach dieser Anweisung einen anderen Inhalt als 21 hat, haben Sie sich vermutlich vertippt.

      Punktrechnung

      Bei der Multiplikation gibt es ein Problem mit dem Operator. Der Punkt, wie er in der Mathematik üblich ist, findet sich nicht auf der Tastatur. Es gibt einen Punkt, aber der ist einfach zu flach. Außerdem sieht man ihn nicht gut. Darum verwenden Programmierer gern einen Stern. Für die Division hat man den Bruchstrich schräg gestellt, damit man die Zeile nicht halbieren muss.

      produkt = 17 * 4

      quotient = 17 / 4

      Die Variable produkt enthält anschließend 68, die Variable quotient enthält 4,25, wenn Sie Python 3 verwenden, und 4, wenn Sie Python 2 einsetzen. Der Unterschied entsteht, weil Python 2 wie die meisten anderen Programmiersprachen arbeitet: Wenn zwei ganze Zahlen durcheinander geteilt werden, soll eine ganze Zahl herauskommen, also der ganzzahlige Anteil einer Division.

      Das aber verwirrt Programmieranfänger so, dass viele Autoren darüber klagen, dass sie ihre Leser trösten müssen, weil 1/2 plötzlich 0 ergibt. Und das ist doch sehr wenig. Und so hat man sich entschlossen, ab Python 3 lieber als Ergebnis eine Fließkommazahl zuzulassen.

      Warnung

      Die meisten Programmiersprachen teilen zwei ganzzahlige Werte ganzzahlig. Die Version 3 von Python verwendet einen Fließkommawert, wenn die Division nicht ganzzahlig aufgeht. Python 2 können Sie dazu zwingen, eine Fließkommadivision durchzuführen, indem Sie einen der Operanden als Fließkommazahl schreiben, also beispielsweise statt 1/2 einfach 1.0/2 schreiben.

      Wenn Sie in Python unbedingt nur das ganzzahlige Ergebnis haben wollen, verwenden Sie einen doppelten Schrägstrich. Er führt eine sogenannte Floor-Division durch und dann ist 1//2 plötzlich wieder 0. Bitte nicht weinen. Wenn Sie so schön ganzzahlig dividiert haben, ist natürlich etwas unter den Tisch gefallen, was in der Grundschule als »Rest« bezeichnet wird. Diesen Rest einer ganzzahligen Division ermitteln Programmierer mit der Modulo-Operation. Dazu missbraucht Python das Prozentzeichen.

      rest = 17 % 4

      Die Variable rest enthält anschließend den Wert 1. Dieser Operator erweist sich beim Test der Teilbarkeit als praktisch. Ergibt die Operation 0, sind die Zahlen durcheinander teilbar. Auch können Sie mit der Modulo-Operation sehr schön eine Dezimalzahl in ihre Ziffern zerlegen, wenn Sie sie mehrfach mit zahl%10 bearbeiten.

      Hinweis

      Wo wir gerade dabei sind: Prozentrechnung wird von Programmierern eigentlich nie mit dem Prozentzeichen betrieben. Um 5 Prozent eines Wertes zu berechnen, multipliziert man ihn mit 5 und teilt ihn durch 100. Oder aber man kürzt es ab, indem man mit 0,05 multipliziert. Probieren Sie es aus!

      Wenn man schon das Divisionszeichen verdoppelt, drängt sich die Duplizierung des Sterns der Multiplikation für eine Potenzierung auf. Damit kann man Zahlen hochleben lassen, beispielsweise ergibt 23 als Ergebnis 8 und schreibt sich in Python 2**3, das entspricht also 2*2*2.

      Rangfolge

      Wenn Sie Ausdrücke kombinieren, kommt es schnell auf die Reihenfolge der Berechnung an. Wenn Sie 5 Flaschen Orangensaft und 3 Flaschen Apfelsaft zum Preis von je 2 Euro kaufen wollen, ergibt sich die Rechnung (5 + 3) * 2. Billiger wird es allerdings, wenn Sie 5 + (3 * 2) rechnen. Was gilt also, wenn Sie die Klammern weglassen? Aus der Schule kennen Sie sicher noch die Regel der Punkt-vor-Strich-Rechnung. Bei Python gilt die folgende Reihenfolge:

      • Klammern

      • Exponent ( Operator **)

      • Multiplikation und Division

      • Addition und Subtraktion

      Operatoren gleicher Ebene werden von links nach rechts ausgewertet. Zur Problemstellung des Safteinkaufs von oben müssten also Klammern gesetzt werden, um eine problemgemäße Rechenweise zu erreichen: (5 + 3) * 2.

      Das folgende Beispiel zeigt die Berechnung eines Bruttopreises

Скачать книгу