如何在Python中将字符串转换为代数或超越函数?

时间:2011-04-22 04:47:29

标签: python wxpython

此代码是一个wxglade代码&它需要输入文本框,是一个代数或超越函数

 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

1 个答案:

答案 0 :(得分:3)

无论你在text_ctrl_1中放入什么Python代码,都会引用一个未定义的变量d。 Python不理解代数或符号数学;如果您将x = y + 3之类的字符串传递给eval并且未定义xy,则Python会抛出错误。

但是,有些库可以在Python中进行符号数学运算。如果您想在Python中使用符号数学,请查看SymPy