El mòdul fractions

  • Conté una sola classe, fractions.Fraction, la qual serveix per representar nombres racionals (fraccions) i operar entre ells de forma exacta (el tipus float, que es fa servir per representar nombres reals, pot provocar errors de precisió).

  • Manual de referència de Python: fractions. Fixem-nos que:

    • És un mòdul extern, per tant cal importar-lo si el volem fer servir.

    • Les fraccions tenen dos atributs: numerator i denominator.

    • Es creen cridant a Fraction(), de diverses maneres. La més habitual és passant-li dos nombre enters, numerador i denominador.

    • En crear-se queden repsentats com la fracció simplificada (canònica).

    • Es poden operar amb qualsevol altre número; el resultat és sempre una fracció, excepte s’hi s’opera amb un float, cas en què el resultat és un float i per tant es perd la precisió.

Exemples d’ús:

>>> from fractions import Fraction    # Importem la classe del mòdul
>>> p = Fraction(1, 3)                # Creem dues fraccions
>>> q = Fraction(5, 10)
>>> p
Fraction(1, 3)
>>> q                                 # Les fraccions sempre queden simplificades
Fraction(1, 2)                        
>>> type(p)
<class 'fractions.Fraction'>
>>> p.numerator                       # Consulta dels atributs
1
>>> p.denominator
3
>>> p.numerator = 12                  # Cap dels dos atributs no es pot canviar
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: can't set attribute 'numerator'
>>> p * 3                             # Operem amb enters o d'altres fraccions
Fraction(1, 1)                        # i el resultat és una altra fracció
>>> p / q - q ** 5
Fraction(61, 96)
>>> p * 2.0                           # En operar amb un float, obtenim un float
0.6666666666666666
>>> int(Fraction(17, 3))              # "Transformem" a enter
5