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 tipusfloat
, 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