python
advanced
Solved
Ends 2026-11-24
Calculator: evaluate an expression
Write evaluate(expr) that computes an arithmetic expression given as text, without eval, exec or ast.literal_eval.
- Numbers can be integers or decimals (
3,2.5). - Operators
+ - * /with normal precedence, and parentheses. - Unary minus:
-3,2 * -(1 + 1). - Spaces may appear anywhere.
- Raise
ValueErrorfor invalid input ("2 +","(1","4 $ 2") andZeroDivisionErrorfor division by zero.
Acceptance criteria
- Return a
float. - The tests at the bottom print
All tests passed.
Hint: a tokenizer plus a recursive-descent parser (expression → term → factor) keeps this short.
Solved by 0 people so far.
EditorCtrl + Enter
When the tests print "All tests passed", the challenge is marked solved in this browser.
Submit your solution for review