示例方程:2x * 3x + 4x * 5x * 6x
for k in equ:
if k == '*':
if equ[equ.index(k)-1] == 'x':
extraEqu1.append('1x')
del(equ[equ.index(k)-1])
else:
x = equ[equ.index(k)-1]
if 'x' in x:
extraEqu1.append(equ[equ.index(k)-1]) #extraEqu1.append(x)
del(equ[equ.index(k)-1]) #del(x)
if equ[equ.index(k)+1] == 'x':
extraEqu1.append('1x')
del(equ[equ.index(k)+1])
else:
x = equ[equ.index(k)+1]
if 'x' in x:
extraEqu1.append(equ[equ.index(k)+1]) #extraEqu1.append(x)
del(equ[equ.index(k)+1]) #del(x)
del(equ[equ.index(k)])
检查是否有任何 x 变量正在相乘,将它们取出并将它们放在不同的列表中。我一直在玩弄上述代码的变体,它总是要么忽略最后一项,要么包含运算符。我毫不怀疑这段代码有很多我没有看到(但应该)的错误,请指出。任何帮助表示赞赏。
对不起,我对输出不是很清楚。我希望 equ 丢失任何被相乘的 x 变量(例如:2x * 3x 都被删除),但留下任何没有被相乘的变量(例如:如果 4x 在它的两边都有一个 + )。我希望 extraEqu1 拥有 equ 会丢失的所有 x 变量。
输入是示例方程,或类似的东西
我使用了 Jeff 的评论并更改了两个 else 语句中的 extraEqu1.append 和 del() (但不是底部的 del() )以采用 x 变量而不是它的值,现在它可以完美运行。有什么理由吗?注释代码显示了我所做的更改
*注意:请不要说“使用 SymPy”或其中任何一个,我正在构建自己的版本作为项目