Consulta: https://docs.python.org/3.5/library/fractions.html
Python permette di usare le frazioni e quindi di affrontare in modo naturale molti problemi matematici tradizionali (MCD, mcm, equazioni, sistemi, …)
Costruttori
fractions.Fraction() | Restituisce (0, 1) |
fractions.Fraction(10) | Restituisce (10, 1) |
fractions.Fraction(11, 10) | Restituisce (11, 10) |
fractions.Fraction(1.1) | NON restituisce (11, 10): (2476979795053773, 2251799813685248) |
fractions.Fraction('11/10') | Restituisce (11, 10) |
fractions.Fraction('1.1') | Restituisce (11, 10) |
fractions.Fraction('11/10') | Restituisce (11, 10) |
fractions.Fraction(f) | Restituisce una copia della frazione f |
Operatori
Tipo | ? | |
---|---|---|
f1 + f2 | Fraction | Addizione |
f1 - f2 | Fraction | Sottrazione |
f1 * f2 | Fraction | Moltiplicazione |
f1 / f2 | Fraction | Divisione |
f1 ** n | Fraction | Potenza n-esima |
f1 < f2 | bool | … |
f1 <= f2 | bool | … |
f1 > f2 | bool | … |
f1 >= f2 | bool | … |
f1 == f2 | bool | … |
f1 != f2 | bool | … |
Funzioni / metodi / proprietà
Tipo | ? | |
---|---|---|
abs(f) | Fraction | Restituisce la frazione senza segno |
f.as_integer_ratio() | tuple | Restituisce una coppia di interi il cui rapporto è uguale a f |
f.denominator | int | Restituisce il denominatore di f |
f.limit_denominator() | Fraction | Restituisce la frazione più vicina a f. Con il denominatore non maggiore di n. |
max(f1, f2, ...) | Fraction | … |
min(f1, f2, ...) | Fraction | … |
f.numerator | int | Restituisce il numeratore di f |
pow(f, n) | Fraction | Restituisce la potenza n-esima di f |
round(f, n) | Fraction | Restituisce la frazione più vicina a f con a denominatore 10**n (?) |
sum(z) | Fraction | Restituisce la somma di una sequenza di frazioni |
Si possono applicare le funzioni di uso comune e ottenere float/int
float(f), int(f), pow(f1, f2), round(f), ...
math.ceil(f), math.floor(f), math.sqrt(f), ...
random.uniform(f1, f2), ...
Prova
import fractions
import math
n1=10; d1=12
n2=12; d2=10
a=fractions.Fraction(n1, d1) # costruttore
b=fractions.Fraction(n2, d2)
print('a =', a)
print('b =', b)
print()
print(a, '+' , b, '=', a+b ) # operatori matematici
print(a, '-' , b, '=', a-b )
print(a, '*' , b, '=', a*b )
print(a, '/' , b, '=', a/b )
print(a, '**', 2, '=', a**2)
print()
print(a, '<' , b, '=', a < b ) # operatori di confronto
print(a, '<=', b, '=', a <= b)
print(a, '>' , b, '=', a < b )
print(a, '>=', b, '=', a >= b)
print(a, '==', b, '=', a == b)
print(a, '!=', b, '=', a != b)
print()
print(' abs(' , a , ') =', abs(a) ) # funzioni
print('math.ceil(' , a , ') =', math.ceil(a) )
print(' float(', a , ') =', float(a) )
print('math.floor(', a , ') =', math.floor(a) )
print(' int(' , a , ') =', int(a) )
print(' pow(' , a, ',', 2, ') =', pow(a,2) )
print(' pow(' , a, ',', b, ') =', pow(a,b) )
print(' round(', a , ') =', round(a) )
print(' round(', a, ',', 1, ') =', round(a,1) )
print()
print('numerator =', a.numerator ) # metodi
print('denominator =', a.denominator)
print('fractions.Fraction.from_float(1.1) =', fractions.Fraction.from_float(1.1))
print('limit_denominator(2) =', a.limit_denominator(2))