Если вы хотите работать с дробями, вам нужно выполнять все операции в точной математике, а не просто конвертировать в Fraction
в конце. Это означает, что не нужно делить int
s на int
s - это даст вам число с плавающей запятой.
from fractions import Fraction as F
1 + F(1, 2 + F(1, 2))
# or, taking advantage of how int/Fraction gives a Fraction,
1 + 1/(2 + F(1, 2))
В противном случае вы потеряете точность при округлении с плавающей запятой, и у вас останутся варианты, такие как limit_denominator
, чтобы угадать, каким мог быть необоснованный результат.