Как запретить SymPy выводить представление дроби с плавающей запятой на выходе srepr()Python

Программы на Python
Anonymous
Как запретить SymPy выводить представление дроби с плавающей запятой на выходе srepr()

Сообщение Anonymous »

Проблема, с которой я столкнулся, заключается в том, что когда в моей функции Sympy в качестве показателя степени указана дробь, srepr вычисляет эту дробь и возвращает число с плавающей запятой. Я бы хотел, чтобы дробь оставалась в выводе дерева выражений, а не вычислялась и возвращалась в виде числа с плавающей запятой.
Пример:

Код: Выделить всё

Function = (x**3 - 7)^(3/7)

srepr(Function)
Вывод:

Код: Выделить всё

"Pow(Add(Pow(Symbol('x'), Integer(3)), Integer(-7)), Float('0.42857142857142855', precision=53))"
Выполняя этот процесс в обратном порядке, приведенную выше функцию можно представить как

Код: Выделить всё

Pow(Add(Pow(x,3),-7),Rational(3, 7))
где дробь (3/7) представлена ​​Rational. Однако, как видно выше, выходные данные srepr той же функции не будут содержать «Rational» для представления дроби. O.O
То же самое происходит, когда я оцениваю выражение с помощью функции SymPy, например «Integral», дробь преобразуется в число с плавающей запятой, а не остается дробью. Причина, по которой мне нужна дробь, заключается в том, что я выполняю интегрирование вручную, поэтому манипулирование дробью важно для понимания того, как осуществляется процесс.
Любая помощь будет принята с благодарностью

Подробнее здесь: https://stackoverflow.com/questions/736 ... n-the-outp

Вернуться в «Python»