Python 3.x 分数+;符号+;蟒蛇3

Python 3.x 分数+;符号+;蟒蛇3,python-3.x,symbols,Python 3.x,Symbols,我想用Python3编写代码,它处理分数和符号 代码应包含两个带符号的分数,做一些基本算术(+和*),并提供一个带符号的分数。这里有一个例子: (3x/10)+(2y/20)=(3x+y)/10 我可以让分数与导入分数一起工作,而符号与导入符号一起工作,但我无法让它们一起工作。我也不知道怎么做,完全是出于同情 您好, JP自动使用分数(在symphy中称为s): from sympy import symbols, srepr x, y = symbols('x y') expr = (3*

我想用Python3编写代码,它处理分数和符号

代码应包含两个带符号的分数,做一些基本算术(+和*),并提供一个带符号的分数。这里有一个例子:

(3x/10)+(2y/20)=(3x+y)/10

我可以让分数与
导入分数
一起工作,而符号与
导入符号
一起工作,但我无法让它们一起工作。我也不知道怎么做,完全是出于同情

您好, JP自动使用分数(在symphy中称为s):

from sympy import symbols, srepr

x, y = symbols('x y')

expr = (3*x/10) + (2*y/20) + (3*x+y)/10

print(expr)         # 3*x/5 + y/5
print(srepr(expr))  # Add(Mul(Rational(3, 5), Symbol('x')),
                    #     Mul(Rational(1, 5), Symbol('y')))
如果没有,则
3*x/5
将自动计算为
0.6*x

使用分数(在sympy中称为s):

from sympy import symbols, srepr

x, y = symbols('x y')

expr = (3*x/10) + (2*y/20) + (3*x+y)/10

print(expr)         # 3*x/5 + y/5
print(srepr(expr))  # Add(Mul(Rational(3, 5), Symbol('x')),
                    #     Mul(Rational(1, 5), Symbol('y')))

如果没有,则
3*x/5
的计算结果将为
0.6*x

为什么需要带sympy的分数?默认情况下,它不保留精确表示吗?或者你想要符号方程而不从Symphy简化吗?为什么你需要带有Symphy的分数?默认情况下它不会保留精确的表示吗?或者你想要符号方程而不需要sympy的简化?简单是最好的。非常感谢你!我当时的想法是完全错误和复杂的。对不起,我还不能投票。这是我的第一个问题:/但很明显,你应该得到一次机会。简单是最好的。非常感谢你!我当时的想法是完全错误和复杂的。对不起,我还不能投票。这是我的第一个问题:/但很明显,你应该得到一票