Berechnung von Brüchen (rationale Zahlen) mit Brüchen

Geschäft

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