Dezimalnumeralia in Python
Einführendes Beispiel
Eine Folge von Ziffern kann als Zeichenfolgenliteral wie »'32767'« geschrieben werden. Bei einer Folge, die nur aus Ziffern besteht, dürfen die umschließenden Apostrophe aber auch weggelassen werden, und die Folge gilt trotzdem meist als ein Ausdruck!
Die Ziffernfolge »32767« steht für die Zahl ‹ 32767 ›. (Eine Schreibweise wie ‹ 32767 › mit einfachen Guillemets [gijəmɛ] "‹" und "›" soll eine mathematische Schreibweise kennzeichnen – hier die aus der Schulmathematik bekannte Zahlenschreibweise).
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
32767
32767
Als Eingabe ist also auch eine Folge von Dezimalziffern erlaubt, die eine Zahl angeben kann.
Dezimalnumeralia
Ein Dezimalnumerale (Plural: „Dezimalnumeralia“) ist eine Schreibweise einer bestimmten Zahl (vor allem im Quelltext) im Dezimalsystem (Zahlensystem zur Basis 10).
Ein Numerale ist allgemein eine Schreibweise einer Zahl.
Ein Beispiel für ein Dezimalnumerale hatten wir schon kennengelernt: »32767«.
Aufbau von Dezimalnumeralia
Unter einer „Dezimalziffer außer 0“ verstehen wir die Ziffern »1«, »2«, »3«, »4«, »5«, »6«, »7«, »8« oder »9«.
Lernhinweis Es ist nicht nötig, den genauen Aufbau, wie er durch die Aufbaudiagramme vermittelt wird, auswendig zu lernen. Die Aufbaudiagramme sind eher dafür gedacht, sie in Zweifelsfällen heranziehen zu können.
- Produktionsregel
Jede Dezimalziffer ausser 0
.-.
|-|---.--->( 1 )---.--->|-|
| '-' ^
| .-. |
'--->( 2 )---'
| '-' ^
| .-. |
'--->( 3 )---'
| '-' ^
| .-. |
'--->( 4 )---'
| '-' ^
| .-. |
'--->( 5 )---'
| '-' ^
| .-. |
'--->( 6 )---'
| '-' ^
| .-. |
'--->( 7 )---'
| '-' ^
| .-. |
'--->( 8 )---'
| '-' ^
| .-. |
'--->( 9 )---'
'-'
Eine Dezimalziffer ist eines der zehn Schriftzeichen »0«, »1«, »2«, »3«, »4«, »5«, »6«, »7«, »8« oder »9«.
- Produktionsregel
Dezimalziffer
.-.
|-|---.-------->( 0 )----------.--->|-|
| '-' |
| .---------------. |
| | Jede | |
'--->| Dezimalziffer |---'
| ausser 0 |
'---------------'
Ein Dezimalnumerale kann folgendermaßen aufgebaut sein:
Es beginnt mit einer der Ziffern »1«, »2«, »3«, »4«, »5«, »6«, »7«, »8« oder »9«. Danach können nun noch beliebig viele der Ziffern »0«, »1«, »2«, »3«, »4«, »5«, »6«, »7«, »8« oder »9« folgen. Zwischen zwei Ziffern darf immer ein Grundstrich »_« eingefügt werden.
Beispiele: »32767« und »32_767«.
- Produktionsregel
Dezimalnumerale
.---------------.
| Jede |
|-|--->| Dezimalziffer |---.---------------------------------------.--->|-|
| ausser 0 | ^ |
'---------------' | |
| .---------------. |
'---| Dezimalziffer |----<--------------'
'---------------' ^ |
| .-. |
'---( _ )---'
'-'
Es gibt aber auch noch eine weitere Produktionsregel für ein Dezimalnumerale:
Das Dezimalnumerale kann auch mit einer Null »0« beginnen, der noch beliebig viele Nullen »0« folgen dürfen. Wie zuvor, so darf auch hier zwischen zwei Ziffern immer noch ein Grundstrich eingefügt werden.
Beispiele: »0« und »00«.
- Produktionsregel
Dezimalnumerale
.-.
.---( _ )---.
| '-' |
V |
.----<----------'---.
| |
V .-. |
|-|---'------>( 0 )-------'--->|-|
'-'
Semantik
Die Auswertung eines Dezimalnumerales ergibt ein Objekt, das eine Zahl darstellt.
Die von einem Dezimalnumerale dargestellte Zahl erhält man, indem man etwaige Grundstriche entfernt und dann den auch aus dem Alltag für Dezimalnumeralia geläufige Bedeutung abliest. Beispielsweise steht das Dezimalnumerale »10« für die Zahl ‹ 10 ›. Auch das Dezimalnumerale »1_0« steht für die Zahl ‹ 10 ›.
Ausdrückliche Formulierung
Der Wert eines Dezimalnumerales kann auch wie folgt ausdrücklich beschrieben werden:
Zur Ermittlung des Wertes eines Dezimalnumerales werden zunächst alle Grundstriche »_« entfernt.
Falls das Dezimalnumerale nur aus einer Ziffer besteht, ist sein Wert der Zahlenwert jener Ziffer. So ergibt sich für das Dezimalnumerale »6« beispielsweise der Wert Sechs.
Falls das Dezimalnumerale aus mehr als einer Ziffer besteht, zerlegen wir es gedanklich in zwei Teile: die letzte Ziffer und den „vorderen Teil“, also den Teil vor der letzten Ziffer. Der Zahlenwert ist dann das Zehnfache des Wertes des vorderen Teils zuzüglich des Wertes der letzten Ziffer. So ergibt sich für das Dezimalnumerale »26« beispielsweise das Zehnfache des Wertes von »2« plus dem Wert von »6«, also Sechsundzwanzig.
Da bei dieser ausdrücklichen Formulierung die Verzehnfachung eine besondere Rolle spielt, spricht man bei dieser Semantik vom „Dezimalsystem“ – das heißt vom „Zehnersystem“.
Anmerkungen
Grundstriche in Dezimalnumeralia
Das Zeichen »_« wird in DIN 32743 Grundstrich genannt. Diese Bezeichnung wird hier übernommen.
Zur optischen Gliederung können auch Grundstriche »_« zwischen zwei Dezimalziffern eingefügt werden. Die Bedeutung eines Dezimalnumerales ergibt sich dann wieder nach dem Entfernen aller Grundstriche.
- Numerale
32_767
- Gleichwertiges Dezimalnumerale
32767
- Eingabe eines Quelltextes und Ausgabe einer Textdarstellung seines Wertes
32_767
32767
Der Grundstrich »_« ist hier also nur eine Lesehilfe für Menschen, von einer Python -Implementation wird er ignoriert.
Literale
Der Oberbegriff für Zeichenfolgenliterale und Dezimalnumeralia ist Literal. Ein Literal ist ein einfacher Ausdruck, der ziemlich direkt eine bestimmte Sache (wie eine Zahl oder eine Zeichenfolge) angibt. Sein Wert ist ein Objekt, welches die vom Literal angegebene Sache darstellt.
»'abc'« ist ein Zeichenfolgenliteral und »123« ist ein Dezimalnumerale, beides sind Literale.
- Begriffshierarchie der Literale
Ausdruck
^
|
Literal
^
|
.-----------'-----------.
| |
Zeichenfolgenliteral Dezimalnumerale
'abc' 123
Übungsfragen ʳ⁴⁴
? Ausgabe vorhersagen ʳ⁴⁴
Welche Ausgabe erscheint in einer Python -Konsole, welche eine Textdarstellung der Werte eingegebener Quelltexte ausgibt, für die folgende Eingabe?
- Eingabe
7
(Dieses ist eine einfache Übungsfrage, keine Scherz- oder Fangfrage!)
? Gleichheit von Werten ʳ⁴⁴
Ist der Wert des Dezimalnumerales »2_2« gleich dem Wert des Dezimalnumerales »22«?
? Gleichheit von Dezimalnumeralia ʳ⁴⁴
Ist das Dezimalnumerale »2_2« gleich dem Dezimalnumerale »22«?
Aufbaudiagramme der Sprache ⃗
- Aufbaudiagramm für Ausdrücke
Ausdruck
.---------.
|-|--->| Literal |--->|-|
'---------'Literal
.----------------------.
|-|---.--->| Zeichenfolgenliteral |---.--->|-|
| '----------------------' |
| .----------------------. |
'--->| Dezimalnumerale |---'
'----------------------'Zeichenfolgenliteral
.-. .-.
|-|---.--->( ' )---.------------------------------.--->( ' )---.--->|-|
| '-' ^ | '-' ^
| | .---------------------. | |
| '---| ein Zeichen außer ' |<---' |
| '---------------------' |
| .-. .-. |
'--->( " )---.------------------------------.--->( " )---'
'-' ^ | '-'
| .---------------------. |
'---| ein Zeichen außer " |<---'
'---------------------'Jede Dezimalziffer ausser 0
.-.
|-|---.--->( 1 )---.--->|-|
| '-' ^
| .-. |
'--->( 2 )---'
| '-' ^
| .-. |
'--->( 3 )---'
| '-' ^
| .-. |
'--->( 4 )---'
| '-' ^
| .-. |
'--->( 5 )---'
| '-' ^
| .-. |
'--->( 6 )---'
| '-' ^
| .-. |
'--->( 7 )---'
| '-' ^
| .-. |
'--->( 8 )---'
| '-' ^
| .-. |
'--->( 9 )---'
'-'Dezimalziffer
.-.
|-|---.-------->( 0 )----------.--->|-|
| '-' |
| .---------------. |
| | Jede | |
'--->| Dezimalziffer |---'
| ausser 0 |
'---------------'Dezimalnumerale (0)
.---------------.
| Jede |
|-|--->| Dezimalziffer |---.---------------------------------------.--->|-|
| ausser 0 | ^ |
'---------------' | |
| .---------------. |
'---| Dezimalziffer |----<--------------'
'---------------' ^ |
| .-. |
'---( _ )---'
'-'Dezimalnumerale (1)
.-.
.---( _ )---.
| '-' |
V |
.----<----------'---.
| |
V .-. |
|-|---'------>( 0 )-------'--->|-|
'-'