Die aufrufbare Klasse ›int‹ in Python
Klassen
Auch die Klassen ›int‹, ›float‹, ›bool‹ und ›str‹ sind variadische Funktoren.
Sie liefern stets einen Wert als Ergebnis, welcher die jeweilige Klasse als Typ hat.
Allgemein kann man eine Klasse oft als Funktor verwenden, um ein Objekt jener Klasse zu erhalten.
- Auswertung
print( type( int( '2' )))
<class 'int'>
Das aufrufbare Objekt ›int‹ ergibt allgemein die Interpretation des Argumentwertes durch einen int-Wert.
Wir nennen eine Klasse in Zusammenhängen, in denen sie aufgerufen wird, um einen Wert jener Klasse zu „konstruieren“, auch einen Konstruktor,
Der Typ des Aufrufs einer Klasse ist die aufgerufene Klasse. Der Typ des Wertes eines Aufrufs des Konstruktors »int« ist also immer die Klasse ›int‹. ›type( int( … ))‹ ist ›int‹.
- Auswertung
'2' + '3'
'23'
- Auswertung
int( '2' )+ int( '3' )
5
- Auswertung
type( '2' )
<class 'str'>
- Auswertung
type( int( '2' ))
<class 'int'>
- Auswertung
int( '2' )
2
Das Objekt »int« ergibt den Argumentwert, wenn dies schon ein int-Wert ist.
- Auswertung
int( 2 )
2
Das Objekt »int« ist außerdem auch eine Klasse (ein Typ).
- Auswertung
int
<class 'int'>
»int« ist Objekt, aufrufbares Objekt und Klasse zugleich!
Negative Zahlen
Der Argumentwert kann eine Zeichenfolge, die aus Ziffern mit einem optionalen Vorzeichen (ohne Leerzeichen) besteht, sein.
- Auswertung
int( '-2' )
-2
Eingabeinterpretation
›int‹ kann auch zur Interpretation von Eingaben verwendet werden.
- Auswertung
int( input( 'ganze Zahl? ' ))+ 1
ganze Zahl? 17
18
- Auswertung
from math import sqrt
sqrt( int( input( 'ganze Zahl? ' )))
ganze Zahl? 25
5.0
Gleitkommawerte
Auch float-Werte können mit ›int‹ als int-Werte interpretiert werden. Hierbei werden etwaige Nachkommastellen abgeschnitten.
- Auswertung
int( 2.8 )
2
- Auswertung
type( 2.8 )
<class 'float'>
- Auswertung
type( int( 2.8 ))
<class 'int'>
- Auswertung
int( 2.1 + 2.3 )
4
- Auswertung
int( 2.1 )+ 2.3
4.3
Wahrheitswerte
Auch bool-Werte können mit ›int‹ als int-Werte interpretiert werden.
- Protokoll
int( True )
1
- Protokoll
int( False )
0
Der Fehlwert
Das variadische aufrufbare Objekt ›int‹ ergibt den Fehlwert des Datentyps »int«, wenn das Argument fehlt.
- Auswertung
int()
0
Die ganzzahlige Division »//« ⃗
Der operator »//« für die ganzzahlige Division rundet immer ab.
- Auswertung
-3//2
-2
- Auswertung
__import__( 'math' ).floor( -3/2 )
-2
- Auswertung
__import__( 'math' ).floor( -1.5 )
-2
- Auswertung
__import__( 'math' ).floor( -1.8 )
-2
- Auswertung
__import__( 'math' ).floor( -1.2 )
-2
Die Funktion »int« rundet immer in Richtung von «0».
- Auswertung
int( -3/2 )
-1
- Auswertung
int( -1.5 )
-1
- Auswertung
int( -1.8 )
-1
- Auswertung
int( -1.2 )
-1
Bei der ganzzahligen Division mit negativen Zahlen wird manchmal Ab- und manchmal Aufrund gewünscht. Je nachdem muß entweder der Operator »//« oder die Funktion »int« verwendet werden.
Übungsaufgaben
/ Übungsaufgabe
Schreiben Sie einen Ausdruck, bei dessen Auswertung eine ganze Zahl eingelesen und das Doppelte dieser Zahl ausgegeben wird. (Hier kann davon ausgegangen werden, daß der Bediener stets ein Numerale zwischen »1« und »1000« eingibt.)
- Protokoll einer Auswertung des zu erstellenden Ausdrucks
20
40
/ Übungsaufgabe
Schreiben Sie einen Ausdruck, bei dessen Auswertung zwei ganze Zahlen eingelesen werden und ihre Summe ausgegeben wird. (Hier kann davon ausgegangen werden, daß der Bediener stets Numeralia zwischen »1« und »1000« eingibt.)
- Protokoll einer Auswertung des zu erstellenden Ausdrucks
20
30
50