Mit dem Modul für Brüche der Standard-Python-Bibliothek können Sie Berechnungen mit Brüchen (rationalen Zahlen) durchführen.
Das Folgende wird hier erklärt.
- Konstrukteur von Fraction
- Zähler- und Nennerwerte als ganze Zahlen abrufen
- Berechnen und Vergleichen von Brüchen (rationale Zahlen)
- Umwandlung von Brüchen in Dezimalzahlen (float)
- Umwandlung von Brüchen in Zeichenketten (str)
- Annäherung an rationale Zahlen erhalten
Konstrukteur von Fraction
Es gibt mehrere Möglichkeiten, eine Fraction-Instanz zu erstellen. In allen Fällen wird der Bruch automatisch in Brüche unterteilt.
Zähler und Nenner als ganze Zahlen angeben
Geben Sie den Zähler und den Nenner jeweils als ganze Zahlen an. Wenn der Nenner weggelassen wird, wird er als 1 angenommen.
from fractions import Fraction print(Fraction(1, 3)) # 1/3 print(Fraction(2, 6)) # 1/3 print(Fraction(3)) # 3
Dezimalbruch (float)
Wird ein Bruchwert übergeben, wird er in einen Bruch umgewandelt.
print(Fraction(0.25)) # 1/4 print(Fraction(0.33)) # 5944751508129055/18014398509481984
Wenn Sie eine Annäherung wünschen, indem Sie einen maximalen Nenner angeben, verwenden Sie die unten beschriebene Methode limit_denominator().
Zeichenkette (str)
Wird ein String-Wert übergeben, wird er in einen Bruch umgewandelt.
print(Fraction('2/5')) # 2/5 print(Fraction('16/48')) # 1/3
Zähler- und Nennerwerte als ganze Zahlen abrufen
Attribute vom Typ Bruch ermöglichen es Ihnen, ganzzahlige Werte für den Zähler bzw. den Nenner zu erhalten. Sie können nicht geändert werden.
numerator
denominator
a = Fraction(1, 3) print(a) # 1/3 print(a.numerator) print(type(a.numerator)) # 1 # <class 'int'> print(a.denominator) print(type(a.denominator)) # 3 # <class 'int'> # a.numerator = 7 # AttributeError: can't set attribute
Berechnen und Vergleichen von Brüchen (rationale Zahlen)
Arithmetische Operatoren können zur Berechnung von Addition, Subtraktion usw. verwendet werden.
result = Fraction(1, 6) ** 2 + Fraction(1, 3) / Fraction(1, 2) print(result) print(type(result)) # 25/36 # <class 'fractions.Fraction'>
Es können auch Vergleichsoperatoren verwendet werden.
print(Fraction(7, 13) > Fraction(8, 15)) # True
Umwandlung von Brüchen in Dezimalzahlen (float)
Kann mit float() von Brüchen in Dezimalzahlen umwandeln.
a_f = float(a) print(a_f) print(type(a_f)) # 0.3333333333333333 # <class 'float'>
Wenn mit einer Dezimalzahl gerechnet wird, wird diese automatisch in einen Float-Typ umgewandelt.
b = a + 0.1 print(b) print(type(b)) # 0.43333333333333335 # <class 'float'>
Umwandlung von Brüchen in Zeichenketten (str)
Zur Umwandlung in eine Zeichenkette verwenden Sie str().
a_s = str(a) print(a_s) print(type(a_s)) # 1/3 # <class 'str'>
Annäherung an rationale Zahlen erhalten
Eine Annäherung an eine rationale Zahl kann mit der Methode limit_denominator() vom Typ Fraction erreicht werden.
Gibt die rationale Zahl (Bruch) zurück, deren Nenner kleiner als oder gleich dem Argument max_denominator ist. Falls nicht angegeben, ist max_denominator=1000000.
Annäherung an irrationale Zahlen wie Pi und die Napier-Zahl e
pi = Fraction(3.14159265359) print(pi) # 3537118876014453/1125899906842624 print(pi.limit_denominator(10)) print(pi.limit_denominator(100)) print(pi.limit_denominator(1000)) # 22/7 # 311/99 # 355/113 e = Fraction(2.71828182846) print(e) # 6121026514870223/2251799813685248 print(e.limit_denominator(10)) print(e.limit_denominator(100)) print(e.limit_denominator(1000)) # 19/7 # 193/71 # 1457/536
Umrechnung von kreisförmigen Dezimalzahlen in Brüche
a = Fraction(0.565656565656) print(a) # 636872674577009/1125899906842624 print(a.limit_denominator()) # 56/99 a = Fraction(0.3333) print(a) # 6004199023210345/18014398509481984 print(a.limit_denominator()) print(a.limit_denominator(100)) # 3333/10000 # 1/3