next up previous contents index 6163656769
Next: 2.2 Strings Up: 2. Datenobjekte Previous: 2. Datenobjekte   Contents   Index


2.1 Zahlen

Dies sind die kleinsten Objekte, die es gibt. Man unterscheidet ganzzahlige Zahlobjekte (Integer), Gleitkommazahlen (Floats), sowie die Ihnen sicherlich nicht in jedem Fall bekannten »komplexen Zahlen« (Complex2.1). Das Einzige, was Sie beachten müssen ist, dass eine Zahl um so mehr Speicherplatz im Arbeitsspeicher benötigt, je komplizierter sie aufgebaut ist. In diesem Sinne sind Ganzzahlobjekte die kleinsten. Probieren Sie einmal der Reihe nach aus:

>>>2+3

>>>2*3

>>>2+3.0

>>>3.0/2

>>>3/2

>>>3.0/2.0

>>>8%2

>>>7%2

>>>4**2

>>>j*j

>>>(1-j)*2

>>>(1+j)*j

Wie Sie sehen, kann der Interpreter als »Taschenrechner« arbeiten. Die letzten beiden Fälle beziehen sich auf komplexe Zahlen, wobei die sogenannte »imaginäre Einheit« das j bedeutet2.2. Die Zahl »j ist so etwas wie« $ \sqrt{-1}$, wobei diese Schreibweise mit grösster Vorsicht zu geniessen ist. Die Zahl $ j$ hat die Eigenschaft $ j\cdot j=-1$. Sie hat auch eine anschauliche Bedeutung, aber ich will nicht wortbrüchig werden und nun doch komplexe Zahlen genauer erklären.

Was die Informatik betrifft, leisten die Zeichen $ +,  -,  *,  /,  **  und  \%$ wesentlich mehr als nur die Ausführung einer Rechenoperation. Diese Zeichen, die aus diesem Grunde auch Operatoren heissen, generieren aus zwei Zahlenobjekten ein drittes, das Ihnen als »Ergebnis« angezeigt wird. Nach der Abarbeitung der Anweisung 2*3 sind sowohl die »2« als auch die »3« und das Ergebnis »6« als Objekte verloren. Man kann auf sie nicht mehr zugreifen. Wozu auch? Nun, soll mit dem Ergebnis weitergerechnet werden, ist die Anbindung an einen Namen notwendig.

>>>Ergebnis=2*3

>>>10**Ergebnis

zeigt, dass jetzt der Name Ergebnis auf das Ergebnisobjekt der Operation »2*3« zeigt. Das Beispiel ist hinreichend dämlich. Daher gehen wir möglichst schnell zu einem etwas interessanteren Datenobjekt gleich über. Bevor wir dieses tun nur noch ein Hinweis. Probieren Sie aus:

>>>2/10E-10

>>>2/0.0000000001

Sie sehen ein paar kleine Überraschungen. $ 10E-10$ bedeutet natürlich $ 10^{-10}$. Sie sehen, dass bei derart grossen Zahlen die Rechengenauigkeit keine Begeisterungswelle auslöst. Tatsächlich ist Python als Taschenrechner mit Gleitkommazahlen zunächst nur für kleinere Rechnungen sehr gut zu gebrauchen. Es gibt ein separates Modul oder sogar eine mathematische Erweiterung von Python, die jeden Wunsch erfüllt. Wir wollen uns hier noch nicht damit abgeben. Sie sehen, dass die zweite Rechnung genauer ist.

Sehr merkwürdig ist aber, dass

>>>2*10000000000
am Ende ein »L« an die Zahl gehängt wird. Dies ist ein sehr grosser Vorteil gegenüber vielen anderen Sprachen. Python kennt beliebig grosse Ganzzahlobjekte! Normalerweise gibt es je nach Art der Abspeicherung eine untere und obere Grenze (siehe Anhang). Durch Anhängen eines »L« wird diese Beschränkung aufgehoben. Rechnen Sie daher möglichst immer mit Integerzahlen. Notfalls hängen Sie ein L an das Ende. Natürlich dauert die Rechnung dann etwas länger, da Long-Integer sehr viel mehr Speicherplatz benötigen. Aber es ist immer noch im allgemeinen besser als das Rechnen mit Gleitkommazahlen.

Wenn wir wieder an unser Apfelsaftglas denken, so ähnelt dieser sehr elementare Datentyp sehr viel weniger diesem Glas als vielmehr dem Apfelsaft selbst. Kommen wir nun also zu den Apfelsaftgläsern.


next up previous contents index 6163656769
Next: 2.2 Strings Up: 2. Datenobjekte Previous: 2. Datenobjekte   Contents   Index
Heiko Schroeder 2003-03-19