logo

Bodenaufteilung in Python

Im folgenden Tutorial lernen wir die Floor Division-Operation mithilfe der Programmiersprache Python kennen.

Aber bevor wir beginnen, wollen wir kurz verstehen, was die Bodenaufteilung ist.

Die Bodenabteilung verstehen

Die Etagendivision ist eine normale Divisionsoperation, außer dass sie die größtmögliche ganze Zahl zurückgibt. Diese Ganzzahl kann entweder kleiner als die normale Divisionsausgabe oder gleich dieser sein.

Die Bodenfunktion wird mathematisch durch das Symbol ⌊ ⌋ gekennzeichnet.

Lassen Sie uns nun die Funktionsweise der Floor-Abteilung verstehen. Zum Beispiel,

⌊36/5⌋

Schritt 1: Führen Sie zuerst die Division durch. Wir werden uns teilen 36 von 5 .

36 ÷ 5 = 7,2

Schritt 2: Jetzt führen wir die Bodenfunktion für den Wert aus, den wir nach der Division erhalten, d. h. 7.2 .

⌊7,2⌋=7

Als Ergebnis erhalten wir 7 Das ist der Mindestwert von 7.2 . Unter Bodendivision versteht man also das Teilen und Abrunden auf die nächste ganze Zahl.

Verschiedene Programmiersprachen bieten eine bestimmte integrierte Funktion oder einen Operator zur Berechnung der Bodenaufteilung. Einige Beispiele können sein:

  1. Wir können das nutzen Boden() Methode in der Programmiersprache C++.
  2. Wir können das nutzen Boden() Methode in der Programmiersprache Java.
  3. Wir können das nutzen // Operator in der Programmiersprache Python.

Wir werden die Verwendung der Etagenteilungsoperation in Python jedoch nur mit Hilfe von diskutieren Doppelter Backslash-Operator (//). .

Bodenaufteilung mit Python verstehen

In der Programmiersprache Python wird die Etagendivision verwendet, um zwei Zahlen zu dividieren und das Ergebnis auf die nächste ganze Zahl abzurunden.

Bevor wir tiefer in das Konzept der Bodenaufteilung eintauchen, erinnern wir uns kurz an die Bedeutung der Aufteilung und die Funktionsweise math.floor() Funktion in Python.

Durchführen einer regulären Division in Python

Wir können zwei Zahlen mit dem Backslash dividieren ( / ) Divisionsoperator in Python. Betrachten wir das folgende Beispiel, das dasselbe demonstriert:

Beispiel 1:

 # declaring variables a = 13 b = 4 # performing regular division c = a / b # printing the result print(a, '/', b, '=', c) 

Ausgabe:

 13 / 4 = 3.25 

Erläuterung:

Im obigen Codeausschnitt haben wir zwei Variablen definiert als a = 13 Und b = 4 . Wir haben dann eine Divisionsoperation mit dem Backslash ( / ) Divisionsoperator und speicherte den resultierenden Wert in einer neuen Variablen, C . Endlich haben wir den Wert von gedruckt C .

Wie wir sehen können, funktioniert die Division in Python genauso wie die Division in der Mathematik.

Die Funktion math.floor() in Python verstehen

In Python gibt es ein integriertes Mathematikmodul, das aus verschiedenen nützlichen mathematischen Dienstprogrammen für Berechnungen besteht.

Eine solche integrierte Funktion des Mathematik Modul ist das math.floor() Funktion. Diese Funktion akzeptiert eine numerische Eingabe und gibt den Mindestwert zurück, indem sie auf die nächste ganze Zahl abgerundet wird.

Betrachten wir das folgende Beispiel, das dasselbe demonstriert:

Beispiel 2:

 # importing the floor() function from the math module from math import floor # declaring the variables a = 5.34 b = -5.34 # using the floor() function c = floor(a) d = floor(b) # printing the values print('Floor value of', a, '=', c) print('Floor value of', b, '=', d) 

Ausgabe:

 Floor value of 5.34 = 5 Floor value of -5.34 = 6 

Erläuterung:

Im obigen Codeausschnitt haben wir das importiert Boden() Funktion aus dem Mathematik Modul. Wir haben dann zwei Variablen als deklariert a = 5,34 Und b = -5,34 . Das haben wir dann genutzt Boden() Funktion zur Berechnung der Grundwerte beider Variablen und deren Speicherung in neuen Variablen, C Und D . Abschließend haben wir die Ergebnisse für die Benutzer ausgedruckt.

Jetzt haben wir die Konzepte der Division und Bodenbildung von Zahlen in Python verstanden. Kommen wir nun zu den Details im Zusammenhang mit der Bodenaufteilung in Python.

Bodenteilung in Python durchführen

Die Etagendivision ist eine Operation in Python, die es uns ermöglicht, zwei Zahlen zu dividieren und den resultierenden Wert auf die nächste ganze Zahl abzurunden. Die Bodenteilung erfolgt durch die Doppelter Backslash-Operator (//). . Die Syntax dafür ist unten dargestellt:

Syntax:

 res = var_1 // var_2 

Wo:

    resist der resultierende Wert der Etagenteilungwar_1ist die Dividendewar_2ist der Teiler

Wir können uns die Bodenaufteilung als die reguläre Unterteilung in Kombination mit der vorstellen math.floor() Funktionsaufruf.

Hinweis: Die Bodendivision kann jede Zahl auf die nächste ganze Zahl abrunden. Beispielsweise wird 3,99 weiterhin auf 3 abgerundet.

Betrachten wir nun ein Beispiel, das die Funktionsweise der Bodenaufteilung demonstriert.

Beispiel 3:

 # declaring the variables a = 13 b = 5 # using the // operator c = a // b # comparing the floor value with regular division d = a / b # printing the values print('Floor Division:', a, '//', b, '=', c) print('Regular Division:', a, '/', b, '=', d) 

Ausgabe:

 Floor Division: 13 // 5 = 2 Regular Division: 13 / 5 = 2.6 

Erläuterung:

Im obigen Codeausschnitt haben wir zwei Variablen als deklariert a = 13 Und b = 5 . Das haben wir dann genutzt // Der Operator berechnet den Bodenteilungswert und speichert den Bodenwert in einer neuen Variablen. C . Wir haben dann die reguläre Division mit durchgeführt / Operator und speicherte den Wert in einer anderen Variablen, D . Abschließend haben wir beide Ergebnisse ausgedruckt und verglichen.

Betrachten wir nun ein weiteres Beispiel mit dem math.floor() Funktion.

Beispiel 4:

 # importing the floor() function from the math module from math import floor # declaring the variables a = 17 b = 5 # using the floor() function c = floor(a / b) # comparing the floor() function with // operator d = a // b # printing the values print('Floor Division using floor() function:', c) print('Floor Division using // operator:', d) 

Ausgabe:

 Floor Division using floor() function: 3 Floor Division using // operator: 3 

Erläuterung:

Wir haben das importiert Boden() Funktion aus dem Mathematik Modul im obigen Codeausschnitt. Wir haben dann zwei Variablen als deklariert a = 17 Und b = 5 . Wir nutzten dann das Boden() Funktion, geteilt A von B und speicherte es in der Variablen c. Wir haben dann den Bodenwert anhand des berechnet // Operator und speicherte den Wert in einer neuen Variablen, D . Abschließend haben wir beide Werte ausgedruckt und verglichen.

Bodendivision mit negativen Zahlen durchführen

Wir können die Etagenteilung auch mit negativen Zahlen durchführen.

Bei negativen Zahlen wird der resultierende Wert dennoch auf die nächste ganze Zahl abgerundet. Einige könnten verwirrt sein, wenn das Abrunden einer negativen Zahl bedeutet, dass man von Null weggeht. Zum Beispiel, -23 ist bodentief -3 .

Betrachten wir ein Beispiel, das die Etagenteilung mit negativen Zahlen demonstriert.

Beispiel 5:

 # declaring the variables a = -10 b = 4 # calculating floor value using // operator c = a // b # printing the value print('Floor Division:', a, '//', b, '=', c) 

Ausgabe:

Java Random Mathe Random
 Floor Division: -10 // 4 = -3 

Erläuterung:

Im obigen Codeausschnitt haben wir zwei Variablen als deklariert a = -10 Und b = 4 . Das haben wir dann genutzt // Der Operator berechnet den Bodenwert und speichert ihn in einer neuen Variablen. C . Zuletzt haben wir den Wert für den Benutzer gedruckt.

Mit einer regelmäßigen Aufteilung, -10/4 würde zurückkehren -2,5 ; Bei einer Bodenteilung wird diese Zahl jedoch auf die nächste negative ganze Zahl abgerundet, d. h. auf -3 .

Bodenteilung mit Floats durchführen

Wir können in Python auch eine Bodenteilung mit Gleitkommazahlen durchführen. Bei der Bodenteilung von Gleitkommazahlen ist das Ergebnis eine Gleitkommazahl, die die nächste ganze Zahl darstellt.

Betrachten wir das folgende Beispiel, das die Bodenaufteilung mithilfe von Floats demonstriert.

Beispiel 6:

Eimersortierung
 # initializing the lists a = [17.5, 10, 13.4] b = [3.3, 2.5, 3] # using for-loop to iterate through the list for i in range(0, 3): # calculating the floor division value c = a[i] // b[i] # printing the result print(a[i], '//', b[i], '=', c) 

Ausgabe:

 17.5 // 3.3 = 5.0 10 // 2.5 = 4.0 13.4 // 3 = 4.0 

Erläuterung:

Im obigen Codeausschnitt haben wir zwei Listen initialisiert. Das haben wir dann genutzt für -Schleife, um die Elemente dieser Listen zu durchlaufen, die Werte für jede Bodenaufteilungsoperation zu berechnen und die Ergebnisse für die Benutzer auszudrucken.

Als Ergebnis können wir beobachten, dass die Bodendivisionsoperation unter Verwendung von Gleitkommazahlen ausgeführt wird und Float mit Ganzzahl den Wert zurückgibt, der auf die nächste Ganzzahl abgerundet wird, die als Gleitkommazahlen dargestellt wird.

Bodendivision und Modulo in Python

In der Mathematik ist Modulo ein Konzept, das hauptsächlich mit der Etagenteilung in Verbindung gebracht wird. Wir können auch sagen, dass Modulo den Rest der Division zwischen zwei Zahlen bedeutet. Mit anderen Worten: Wir können damit die Anzahl der Reste zählen.

Wir können Modulo in Python mit dem Prozentsatz berechnen ( % ) Operator.

Betrachten wir ein Beispiel, das die Beziehung zwischen der Bodenteilung und dem Modulo in Python veranschaulicht.

Beispiel 7.1:

Bei 13 Bonbons und 4 Essern können wir mithilfe der Bodenteilung berechnen, wie viele Bonbons jeder Esser bekommt.

Code:

 # declaring variables numberOfCandies = 13 numberOfEaters = 4 # using floor division to calculate the number of candies each eater gets candiesPerEater = numberOfCandies // numberOfEaters # printing values print('Number of Candies:', numberOfCandies) print('Number of Eaters:', numberOfEaters) print('The number of candies each eater gets:', candiesPerEater) 

Ausgabe:

 Number of Candies: 13 Number of Eaters: 4 The number of candies each eater gets: 3 

Erläuterung:

Im obigen Codeausschnitt haben wir einige Variablen deklariert, die die Anzahl der Süßigkeiten und Esser angeben. Das haben wir dann genutzt // Der Operator führt eine Bodenaufteilung durch, um die Anzahl der Süßigkeiten zu berechnen, die jeder Esser bekommt. Diese Werte haben wir dann für den Benutzer ausgedruckt.

Berechnen wir nun die Gesamtzahl der in der Gruppe geteilten Süßigkeiten. Das ist nicht sehr wichtig.

Beispiel 7.2:

Wir multiplizieren die Anzahl der Süßigkeiten pro Person mit der Anzahl der Esser.

Code:

 # calculating the total number of candies being shared among the group totalCandiesShared = candiesPerEater * numberOfEaters # printing values print('The total number of candies being shared among the group:', totalCandiesShared) 

Ausgabe:

 The total number of candies being shared among the group: 12 

Erläuterung:

Im obigen Codeausschnitt haben wir die Gesamtzahl der in der Gruppe geteilten Süßigkeiten berechnet, indem wir die Anzahl der Süßigkeiten pro Person mit der Anzahl der Esser multipliziert haben, und den resultierenden Wert für die Benutzer ausgedruckt.

Die Gesamtzahl der geteilten vollen Bonbons beträgt 12 . Die Gesamtzahl der Bonbons beträgt jedoch 13 . Diese Aussage impliziert, dass eine Süßigkeit übrig bleibt und nicht gegessen wird.

Das obige Beispiel beschreibt eine Möglichkeit, die Anzahl der Reste zu berechnen. Wenn uns jedoch nur die Anzahl der Reste interessiert, können wir diese direkt mit Hilfe von Modulo berechnen.

Beispiel 7.3:

Wie viele übrig gebliebene Süßigkeiten gibt es bei 13 Bonbons und 4 Essern?

Code:

 # declaring variables numberOfCandies = 13 numberOfEaters = 4 # using modulo to calculate the leftover candies leftoverCandies = numberOfCandies % numberOfEaters # printing values print('Number of Candies:', numberOfCandies) print('Number of Eaters:', numberOfEaters) print('Total number of Leftover Candies:', leftoverCandies) 

Ausgabe:

 Number of Candies: 13 Number of Eaters: 4 Total number of Leftover Candies: 1 

Erläuterung:

Im obigen Codeausschnitt haben wir die Variablen deklariert, in denen die Werte „candies“ und „eaters“ gespeichert sind. Wir haben dann die Anzahl der übriggebliebenen Süßigkeiten mithilfe von berechnet % Operator, der die Modulo-Operation bezeichnet. Abschließend haben wir einige Aussagen und daraus resultierende Werte für die Benutzer ausgedruckt. Als Ergebnis können wir sehen, dass es sich um die übrig gebliebene Süßigkeit handelt 1 .

a = b * (a // b) + (a % b)

In Python hängen die Bodenteilung und das Modulo durch die folgende Gleichung zusammen:

Wo:

    Aist die Dividende.Bist der Teiler.

Lassen Sie uns zum Beispiel überprüfen, ob die obige Gleichung mit den 13 Süßigkeiten und 4 Essern gilt.

13 = 4 * (13 // 4) + (13% 4)
13 = 4 * 3 + 1
13 = 13

Somit haben wir die Konzepte der Etagenteilung und des Modulo in Python verstanden. Nun schauen wir uns eine integrierte Funktion an, die beides berechnet.

Die Funktion divmod() in Python verstehen

Python bietet eine integrierte Funktion namens divmod() Dadurch können wir sowohl die Bodenteilung als auch das Modulo zwischen zwei numerischen Werten berechnen.

Die Syntax für die divmod() Die Funktion ist unten dargestellt:

Syntax:

 res = divmod(var_1, var_2) 

Wo:

    resist das Ergebnis als Tupel. Dieses Tupel hat das Ergebnis der Bodenteilung und den Rest, der durch das Modulo gegeben ist.war_1ist die Dividende.war_2ist der Teiler.

Betrachten wir nun das folgende Beispiel, das dies demonstriert divmod() Funktion.

Beispiel 8:

Wie viele volle Bonbons bekommt jeder Esser bei 13 Bonbons und 4 Essern und wie viele Bonbons bleiben übrig?

Code:

 # declaring variables numberOfCandies = 13 numberOfEaters = 4 # using the divmod() function nCandies, nLeftovers = divmod(numberOfCandies, numberOfEaters) # printing values print('Number of Candies:', numberOfCandies) print('Number of Eaters:', numberOfEaters) print('Number of Candies per eater:', nCandies) print('Total number of Leftover Candies:', nLeftovers) 

Ausgabe:

 Number of Candies: 13 Number of Eaters: 4 Number of Candies per eater: 3 Total number of Leftover Candies: 1 

Erläuterung:

Im obigen Codeausschnitt haben wir einige Variablen deklariert. Wir haben das verwendet divmod() Funktion zur Berechnung des Bodenteilungswerts und des Modulo für die angegebenen Variablen. Diese Werte haben wir dann für die Benutzer ausgedruckt.

Den Vorrang der Etagenteilung verstehen

In Python der Etagenteilungsoperator // hat die gleiche Vorrangstufe wie die Multiplikation ( * ), Aufteilung ( / ) und Modulo ( % ).

Diese Aussage impliziert, dass, wenn wir multiplizieren und dann durch eine Bodendivision dividieren, zuerst die Multiplikation und dann die Bodendivision durchgeführt wird und umgekehrt.

Wenn wir jedoch beispielsweise zwei Zahlen subtrahieren und dann eine Etagendivision durchführen, wird die Etagendivisionsoperation den Weg ebnen.

Betrachten wir ein Beispiel, das dasselbe demonstriert.

Beispiel 9.1:

 # declaring some variables a = 3 b = 5 c = 6 d = 7 # performing an operation e = a * b // c - d # printing the result print(a, '*', b, '//', c, '-', d, '=', e) 

Ausgabe:

 3 * 5 // 6 - 7 = -5 

Erläuterung:

Im obigen Codeausschnitt haben wir einige Variablen als deklariert a = 3, b = 5, c = 6 , Und d = 7 . Anschließend haben wir eine Operation ausgeführt und den resultierenden Wert in einer neuen Variablen gespeichert. Es ist . Zuletzt haben wir diesen Wert für die Benutzer ausgedruckt.

Um zu verstehen, wie dieses Ergebnis berechnet wird, können wir die Begriffe in der richtigen Reihenfolge in Klammern setzen.

Das unten gezeigte Beispiel zeigt dasselbe:

Beispiel 9.2:

 # declaring some variables a = 3 b = 5 c = 6 d = 7 # performing an operation e = ((a * b) // c) - d # printing the result print('((', a, '*', b, ') //', c, ') -', d, '=', e) 

Ausgabe:

 (( 3 * 5 ) // 6 ) - 7 = -5 

Erläuterung:

Im obigen Codeausschnitt haben wir einige Variablen als deklariert a = 3, b = 5, c = 6 , Und d = 7 . Wir haben dann die gleiche Operation durchgeführt, jedoch mit Klammern, und den resultierenden Wert in einer neuen Variablen gespeichert. Es ist . Zuletzt haben wir diesen Wert für die Benutzer ausgedruckt.

Wie wir beobachten können, erhalten wir ein ähnliches Ergebnis wie im vorherigen Beispiel, was bedeutet, dass die Berechnungsreihenfolge wie folgt lautet:

Multiplikation → Etagendivision → Subtraktion

Hier ist die schrittweise Berechnung des oben Gesagten:

3 * 5 // 6 - 7
((3 * 5) // 6) - 7
(15 // 6) - 7
2 - 7
-5

Wir haben die Bodenaufteilung und ihre Verwendung in der Programmiersprache Python richtig verstanden.

arp-a-Befehl

Abschließend betrachten wir einen erweiterten Anwendungsfall für die Bodenabteilung. Im folgenden Fall bedeutet „fortgeschritten“ nicht „schwer“. es ist jedoch eher ungewöhnlich.

Verstehen der erweiterten Nutzung der Bodenteilung

Einige von uns wissen vielleicht, dass wir in Python auch benutzerdefinierte Objekte erstellen können, die die Bodenteilungsoperation unterstützen. Dies kann durch eine spezielle Methode namens möglich sein __floordiv__() .

Die __floordiv__()-Methode in Python

Die Etagendivisionsoperation in Python wird verwendet, um zwei Zahlen zu dividieren und das Ergebnis auf die nächste ganze Zahl abzurunden.

Es funktioniert unter der Haube, weil ein numerischer Typ eine spezielle Methode namens implementiert __floordiv__() . Dann, wann immer wir anrufen // Operator zwischen zwei Objekten, dem __floordiv__() Methode wird aufgerufen.

In Python können wir auch direkt aufrufen __floordiv__() Methode. Betrachten wir das folgende Beispiel, das dasselbe demonstriert:

Beispiel 10:

 # declaring some variables a = 31 b = 7 # performing floor division using the // operator c = a // b # performing floor division using the __floordiv__() method d = (a).__floordiv__(b) # printing the results of both operations print('Using the // operator:
', a, '//', b, '=', c) print('Using the __floordiv__() method:
 (', a, ').__floordiv__(', b, ') =', c) 

Ausgabe:

 Using the // operator: 31 // 7 = 4 Using the __floordiv__() method: ( 31 ).__floordiv__( 7 ) = 4 

Erläuterung:

Im obigen Codeausschnitt haben wir zwei Variablen als deklariert a = 31 Und b = 7 . Anschließend führten wir eine Bodenaufteilung mithilfe des durch // Betreiber und __floordiv__() Methode und speicherte ihre resultierenden Werte in zwei Variablen, C Und D . Abschließend haben wir die Ergebnisse für die Benutzer ausgedruckt.

Anhand der oben gezeigten Ausgabe können wir erkennen, dass beide Ausdrücke zum gleichen Ergebnis geführt haben. Dies liegt daran, dass der erste Ausdruck in den zweiten Ausdruck umgewandelt wird. Mit anderen Worten: Diese Aufrufe sind einander gleichwertig.

Jetzt wird es interessant. Betrachten wir das folgende Beispiel.

Beispiel 11.1:

Im folgenden Beispiel erstellen wir eine benutzerdefinierte Klasse, die die ganzzahligen Werte als Zeichenfolgen darstellt. Anschließend erstellen wir zwei Objekte dieser benutzerdefinierten Klasse und führen an ihnen eine Bodenaufteilungsoperation durch.

Code:

 # creating a class representing integer values as string class IntStr: def __init__(self, val): self.val = val # instantiating the class with two objects intOne = IntStr('17') intTwo = IntStr('4') # printing the result of the floor division operation print(intOne // intTwo) 

Ausgabe:

 Traceback (most recent call last): File 'D:Python_programspycase.py', line 11, in print(intOne // intTwo) TypeError: unsupported operand type(s) for //: 'IntStr' and 'IntStr' 

Erläuterung:

Im obigen Codeausschnitt haben wir eine Klasse definiert als IntStr das die ganzzahligen Werte als Zeichenfolgen darstellt. Wir haben dann zwei Objekte erstellt IntStr Klasse. Endlich haben wir die Bodenaufteilung intonieren Objekt durch die intTwo Objekt und versuchte, das Ergebnis zu drucken.

Die obige Ausgabe zeigt jedoch a TypeError . Das verrät diese Fehlermeldung IntStr Objekte unterstützen keine Bodenaufteilung. Dieser Fehler macht Sinn. Wie hätte der benutzerdefinierte Typ eine Ahnung von bodentrennenden Saitenobjekten?

Wie sich jedoch herausstellt, können wir das schaffen IntStr Unterteilung des Objektträgerbodens.

Bisher haben wir erfahren, wann immer wir anrufen // Operator nennen wir den __floordiv__() Methode. Diese Methode wird irgendwo in der Klasse des Objekts ausgeführt. Beispielsweise unterstützen int-Objekte die Bodenteilung, da die int-Klasse die angewendet hat __floordiv__() Methode.

Diese speziellen Methoden, wie z __floordiv__() , haben etwas Erstaunliches gemeinsam, dass wir diese Methoden in die benutzerdefinierte Klasse implementieren können. Mit anderen Worten: Wir können dafür sorgen, dass die benutzerdefinierten Objekte die Etagenteilung in der Programmiersprache Python unterstützen.

Betrachten wir nun das folgende Beispiel, das dasselbe demonstriert.

Beispiel 11.2:

Im folgenden Beispiel werden wir das implementieren __floordiv__() Methode in die IntStr Klasse. Anschließend erstellen wir zwei Objekte dieser benutzerdefinierten Klasse und führen an ihnen eine Bodenaufteilungsoperation durch.

Code:

 # creating a class representing integer values as string class IntStr: def __init__(self, val): self.val = val def __floordiv__(self, other): intOne = int(self.val) intTwo = int(other.val) res = intOne // intTwo return IntStr(str(res)) # instantiating the class with two objects intOne = IntStr('17') intTwo = IntStr('4') # performing floor division operation res = intOne // intTwo # printing the result of the floor division operation print(intOne.val, '//', intTwo.val, '=', res.val) 

Ausgabe:

 17 // 4 = 4 

Erläuterung:

Im obigen Codeausschnitt haben wir eine Klasse definiert als IntStr das die ganzzahligen Werte als Zeichenfolgen darstellt. Wir haben auch das implementiert __floordiv__() Methode innerhalb dieser Klasse. Diese Methode akzeptiert den numerischen Zeichenfolgenwert von sich selbst und einem anderen Objekt. Wir haben diese Zeichenfolgenwerte in Ganzzahlen umgewandelt und eine Bodendivision zwischen ihnen durchgeführt. Anschließend haben wir das Ergebnis wieder in einen String umgewandelt und einen neuen erstellt IntStr Objekt. Wir haben das instanziiert IntStr Klasse mit zwei Objekten und führte eine Bodenteilungsoperation zwischen ihnen durch. Zuletzt haben wir den resultierenden Wert für die Benutzer ausgedruckt.

Jetzt haben wir die Methode zum Erstellen einer benutzerdefinierten Klasse zur Unterstützung der Bodenteilung erfolgreich verstanden.

Wenn uns die Tatsache nicht gefällt, dass wir anrufen müssen Objekt.Wert Um das Ergebnis zu sehen, können wir das implementieren __str__() Methode, die den Wert beim Drucken direkt zurückgibt.

Betrachten wir das folgende Beispiel, das dasselbe demonstriert.

Beispiel 11.3:

 # creating a class representing integer values as string class IntStr: def __init__(self, val): self.val = val def __floordiv__(self, other): intOne = int(self.val) intTwo = int(other.val) res = intOne // intTwo return IntStr(str(res)) def __str__(self): return self.val # instantiating the class with two objects intOne = IntStr('17') intTwo = IntStr('4') # performing floor division operation res = intOne // intTwo # printing the result of the floor division operation print(intOne, '//', intTwo, '=', res) 

Ausgabe:

 17 // 4 = 4 

Erläuterung:

Im obigen Codeausschnitt haben wir eine Klasse definiert als IntStr das die ganzzahligen Werte als Zeichenfolgen darstellt. Wir haben auch das implementiert __floordiv__() Methode innerhalb dieser Klasse. Wir haben dann die definiert __str__() Methode, die die String-Werte beim Drucken direkt zurückgibt. Wir haben das instanziiert IntStr Klasse mit zwei Objekten und führte eine Bodenteilungsoperation zwischen ihnen durch. Zuletzt haben wir den resultierenden Wert für die Benutzer ausgedruckt.