First off - I like Wordy. It’s a fun exercise, and required me to think, and really get the order of my parsing right. I actually had to steal from some community solutions to get all my tests to pass (I was having trouble getting the correct value errors).
However, the difference in skills needed to solve Wordy and those needed for some of the other easy exercises is night and day.
Bobahop’s suggested solution of using the getattribute along with other dunder strings - involving an interesting python characteristic of converting a string to a function, is miles beyond Lucian’s Lasagna or reversing a string.
Other pythonic ways to solve this would be to use the operator module, and/or regular expressions.
I guess the most simple way not involving deeper python features could be to split the question, try to parse operands into ints, and set up a if , elif chain to match the operator name and then perform the “+=”, etc operations on them.
Even then, the logic required to make sure you have the correct value error is involved.
so I would suggest bumping up the difficulty level to medium. The only reason this would matter is that a beginner might get disproportionately discouraged by not being able to do an “easy” exercise.
The Python exercise difficulties were reassessed back in Oct 2021. Adjusting difficulties is a pretty big task, as you can’t really assess a single exercise on its own; difficulties need assessing relative to all the other exercises across the entire track (or across a large portion of it). If you assess difficulties as you work through exercises, and if you work through exercises from easiest to hardest, each new exercise is always a 10/10 difficulty.
If you’re planning on working through a big chunk of the track, it would be helpful if you could collect your feelings on difficulties across a whole lot of exercises … then go back and re-evaluate those values once you’ve done some of the harder ones. That dataset, as a whole, can be useful for adjusting the values here.
@noah-clements - Thank you for sharing your learning and your struggles.
What Isaac says is true – ranking difficulty is highly subjective (perceptions shift as you acquire more techniques), dependent on your domain expertise (not just your programming language experience), and complicated for a language track – due to prerequisites, learning exercise practice association, and unlocking logic for the exercise tree.
Currently, wordy is ranked as a 1, and could probably be a 3 – but that would still flag it as easy. Right now, we ‘bucket’ difficulty level:
1-3 == ‘easy’ (from reverse-string (1) to pythagorean-triplet (3)) 4-7 == ‘medium’ (from pascals-triangle (4) to paasio (7)) 8+ == ‘hard’ (rest API (8) and POV (9) on the site)
Which means most of the exercises on the Python track are flagged easy.
With that said, we may indeed want to revisit our general rankings again, now that we’ve added more learning and practice exercises (and will be adding even more).
BUT it’s pretty high-effort to document, collect feedback, re-rank & then re-arrange prerequisites and practice associations. In the next six months or so, we’re not likely to prioritize that activity ahead of adding more:
But we can definitely put it on the longer-term list of things to do. And if I (or another volunteer) get time, we might move thinking about re-ranking forward a bit.
Both of your responses are quite reasonable, and certainly I can see how categorization of difficulties is much lower priority than actually providing all these great exercises and terrific functionality across many different languages. I am greatly enjoying this service.
I did not mean to complain or add any burden. I thought I saw a suggestion in a different thread where someone talked about exercise difficulty levels in general that it would be better to provide specific examples.
I personally found wordy more difficult than Rest-API, but we all come at these things from different places.