У меня есть кодовое выражение, например
def div(a, b):
return a / b
, которое я хотел бы вернуть a / b
символически , если я вызываю функцию с int
или выражением sympy, т.е. :
from sympy import Rational, sqrt
compute(1.0, 7.0) == 0.14285714285714285 # (1)
compute(1, 7) == sympy.Rational(1, 7) # (2)
compute(1, sqrt(2)) == 1 / sqrt(2) # (3)
В приведенном выше определении числа (1) и (3) выполняются правильно, но возвращается значение с плавающей запятой 0.14285714285714285
для (2). Этот
def div(a, b):
return Rational(a, b)
вообще не работает с (1) и (3).
Вдобавок к разделению, я хотел бы знать, как заставить это работать для sqrt
тоже.
Есть подсказки?