Met behulp van de breukenmodule van de standaard Python-bibliotheek kunt u berekeningen met breuken (rationale getallen) uitvoeren.
Het volgende wordt hier uitgelegd.
- Constructor van breuk
- Verkrijg teller- en noemerwaarden als gehele getallen
- Breuken berekenen en vergelijken (rationale getallen)
- Breuken omzetten in decimalen (float)
- Conversie van breuk naar tekenreeks (str)
- Benadering van rationale getallen
Constructor van breuk
Er zijn verschillende manieren om een instantie van een breuk te maken. In alle gevallen wordt de breuk automatisch in breuken verdeeld.
Geef teller en noemer aan als gehele getallen
Geef de teller en de noemer op als gehele getallen, respectievelijk. Als de noemer wordt weggelaten, wordt deze geacht 1 te zijn.
from fractions import Fraction print(Fraction(1, 3)) # 1/3 print(Fraction(2, 6)) # 1/3 print(Fraction(3)) # 3
decimale breuk (float)
Als een breukwaarde wordt doorgegeven, wordt deze omgezet in een breuk.
print(Fraction(0.25)) # 1/4 print(Fraction(0.33)) # 5944751508129055/18014398509481984
Indien u wenst te benaderen door een maximale noemer op te geven, gebruik dan de limit_denominator() methode die hieronder wordt beschreven.
tekenreeks (str)
Als een string-waarde wordt doorgegeven, wordt deze omgezet in een breuk.
print(Fraction('2/5')) # 2/5 print(Fraction('16/48')) # 1/3
Verkrijg teller- en noemerwaarden als gehele getallen
Attributen van het type breuk maken het mogelijk gehele waarden te verkrijgen voor respectievelijk de teller en de noemer. Zij kunnen niet worden gewijzigd.
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
Breuken berekenen en vergelijken (rationale getallen)
Rekenkundige operatoren kunnen worden gebruikt voor optellen, aftrekken, enz.
result = Fraction(1, 6) ** 2 + Fraction(1, 3) / Fraction(1, 2) print(result) print(type(result)) # 25/36 # <class 'fractions.Fraction'>
Vergelijkingsoperatoren kunnen ook worden gebruikt.
print(Fraction(7, 13) > Fraction(8, 15)) # True
Breuken omzetten in decimalen (float)
Kan van breuken naar decimalen converteren met float().
a_f = float(a) print(a_f) print(type(a_f)) # 0.3333333333333333 # <class 'float'>
Wanneer gerekend wordt met een decimaal getal, wordt dit automatisch omgezet naar een float-type.
b = a + 0.1 print(b) print(type(b)) # 0.43333333333333335 # <class 'float'>
Conversie van breuk naar tekenreeks (str)
Om te converteren naar een string, gebruik str().
a_s = str(a) print(a_s) print(type(a_s)) # 1/3 # <class 'str'>
Benadering van rationale getallen
Een benadering van een rationaal getal kan worden verkregen met de methode limit_denominator() van het type Fraction.
Geeft als resultaat het rationale getal (breuk) waarvan de noemer kleiner is dan of gelijk is aan het argument max_denominator. Indien weggelaten, max_denominator=1000000.
Benader irrationele getallen zoals pi en het getal van Napier 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
Zet ronde decimalen om in breuken
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