【发布时间】:2018-11-10 21:07:22
【问题描述】:
假设我定义了以下表达式:
poly1 = 6/(25*(x + 3)) + 1/(5*(x + 3)**2)
打印出来的:
6/(25*x + 75) + 1/(5*(x + 3)**2)
关于这个表达我有两个问题。首先,有没有办法让表达式保持我输入的格式?特别是,为了将第一个术语的分母保留为25*(x + 3),我可以做些什么吗?
其次,如果我有打印形式的表达式,拆分表达式,重新格式化第一项的分母,然后将其重新组合在一起的最佳方法是什么?理想情况下,我可以使用一系列args 调用来挖掘表达式以获取第一项的分母,然后使用 factor 函数对其进行适当的分解,如poly1.args[0].args[1].args[0].factor()。问题是,由于组成表达式的元组是不可变的,我不能只用上面计算的表达式替换 poly1 的一部分。有没有比从头开始重建整个表达式更好的方法来替换因式多项式?
注意:我宁愿不使用 subs() 方法,因为它会搜索整个表达式,而且在某些情况下,您可能希望非常具体地了解您修改的不同部分。
【问题讨论】: