2011-04-22 47 views
0

此代碼是一個wxglade代碼&它需要一個文本框WHIS的輸入是代數或超越函數如何將字符串轉換爲Python中的代數或超越函數?

def event_2(self, event): # wxGlade: application.<event_handler> 
     #print "Event handler `event_2' not implemented!" 
     #event.Skip() 
    equationString = self.text_ctrl_1.GetValue() 
    function = eval(equationString) 
    event.Skip() 

它給人的錯誤,你已經把在

Traceback (most recent call last): 
    File "ppy.py", line 103, in event_2 
    function = eval(equationString) 
    File "<string>", line 1, in <module> 
NameError: name 'd' is not defined 

回答

3

無論Python代碼text_ctrl_1引用未定義的變量d。 Python不理解代數或符號數學;如果你傳遞一個像x = y + 3eval這樣的字符串,並且xy沒有被定義,Python會拋出一個錯誤。

但是,有些庫可以在Python中做符號數學。如果你想在Python中使用符號數學,請查看SymPy

相關問題