Search code examples
pythonparsingequation

Equation parsing in Python


How can I (easily) take a string such as "sin(x)*x^2" which might be entered by a user at runtime and produce a Python function that could be evaluated for any value of x?


Solution

  • Python's own internal compiler can parse this, if you use Python notation.

    If your change the notation slightly, you'll be happier.

    import compiler
    eq= "sin(x)*x**2"
    ast= compiler.parse( eq )
    

    You get an abstract syntax tree that you can work with.