我一直在做一個簡單的腳本來解決某些練習中的變量(例如:在x + 2 = 10中尋找x)。直到我偶然發現一個使用虛數來解決變量的函數之前,我遇到了很多麻煩。我玩弄了一些,並學到了一些,但我想現在解決兩個變量。這裏是我的程序的主要想法:關於一個簡單的代數求解器的建議(python)
def solve(eq,var1='x', var2='y'):
if '+' in eq:
try:
eq1 = eq.replace("=","-(")+")"
eq2 = eq1.replace('+','-')
print eq1
print eq2
c = eval(eq2,{var1:1j},{var2:1j})
print c
c = -c.real/c.imag
eq3 = eq1.replace('x',str(int(c)))
eq4 = eq3.replace('y',str(int(c)))
eq5 = eq4.replace('-(', '=')
eq6 = eq5.replace(')','')
if eq6 == True:
print 'test1'
print eq6
else:
print 'oops1'
print eq6
程序中的其他一切都在補償不同的方程。我很難確定方程已經解決(eq6 == True)。有什麼建議?或者我犯過錯誤?
該代碼構造嚴重。切勿在一個'try'塊中放置多行。另外,最好使用有意義的變量名稱並添加註釋(或至少顯示打印輸出)。 – Will 2012-03-15 03:33:39
我關注的只是主要想法,但謝謝,我會牢記這一點。 – asqapro 2012-03-15 03:44:54