Skip to content

Brüche (rationale Zahlen) in Python

Python

Sie können Brüche (rationale Zahlen) mit dem Fraktionsmodul in Python verarbeiten.

Dieser Artikel hat folgenden Inhalt.

  • Der Fraction-Konstruktor
  • Zähler und Nenner erhalten
  • Brüche berechnen und vergleichen
  • Einen Bruch in eine Fließkommazahl umwandeln:float()
  • Einen Bruch in einen String umwandeln:str()
  • Erhalten Sie Begründung Annäherungen:limit_denominator()

Der Fraction-Konstruktor

Es gibt mehrere Möglichkeiten, eine Fraktionsinstanz zu erstellen. Beachten Sie, dass das Ergebnis in allen Fällen automatisch reduziert (vereinfacht) wird.

Geben Sie Zähler und Nenner als ganze Zahlen an

Der Nenner wird als 1 betrachtet, wenn er weggelassen wird.

from fractions import Fraction

print(Fraction(1, 3))
# 1/3

print(Fraction(2, 6))
# 1/3

print(Fraction(3))
# 3

Fließkommazahl

print(Fraction(0.25))
# 1/4

print(Fraction(0.33))
# 5944751508129055/18014398509481984

Wenn SIE durch Angabe des maximalen Nenners approximieren möchten, verwenden SIE die unten beschriebene Methode limit_denominator().

Saite (str)

print(Fraction('2/5'))
# 2/5

print(Fraction('16/48'))
# 1/3

Zähler und Nenner erhalten

Sie können Zähler und Nenner mit den Zähler- und Nennerattributen von Fraction erhalten. Sie können nicht geändert werden.

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

Brüche berechnen und vergleichen

Sie können Bruch mit arithmetischen Operatoren berechnen.

result = Fraction(1, 6) ** 2 + Fraction(1, 3) / Fraction(1, 2)
print(result)
print(type(result))
# 25/36
# <class 'fractions.Fraction'>

Sie können auch den Vergleichsoperator verwenden.

print(Fraction(7, 13) > Fraction(8, 15))
# True

Einen Bruch in eine Fließkommazahl umwandeln:float()

Sie können Fraction mit float() in eine Fließkommazahl umwandeln.

a_f = float(a)
print(a_f)
print(type(a_f))
# 0.3333333333333333
# <class 'float'>

Das Ergebnis einer Operation zwischen Fraction und Float wird automatisch in Float umgewandelt.

b = a + 0.1
print(b)
print(type(b))
# 0.43333333333333335
# <class 'float'>

Einen Bruch in einen String umwandeln:str()

Du kannst Fraction mit str() in einen String umwandeln.

a_s = str(a)
print(a_s)
print(type(a_s))
# 1/3
# <class 'str'>

Erhalten Sie Begründung Annäherungen:limit_denominator()

Mit der Methode limit_denominator() erhalten Sie eine rationale Annäherung.

Die Methode limit_denominator() gibt einen Bruch zurück, dessen Nenner kleiner oder gleich dem Parameter max_denominator ist. Der Standardwert ist max_denominator=1000000.

Ungefähre Pi- und 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

Wandeln Sie sich wiederholende Dezimalzahlen in Brüche um

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