If you’re “academically interested”, you want to learn about how to write a parser with operator precedence.
Simple Top-Down Parsing in Python is a nice article that builds an example parser to do exactly what you want to do: Evaluate mathematical expressions.
I can highly recommend having a go at writing your own first parser — it’s one of those “ah, that’s how that works” moments!