All of what Mr-Borges said, but on top of that I would like to add something about this section of code:
pointValue = powerMap[i][j]
# If it's a positive number:
positiveNumber = hero.findNearest(hero.findEnemies()) or hero.findNearest(hero.findItems())
The goal here is to move to a point on the grid that is represented by a positive number. In the hints on this level it will show you what the powerMap is, which is important to understand. It's a 2d array that will look something like this:
powerMap = [0,0,1,0,3]
Basically, every X on your map is represented by a zero, or positive number. Now your positiveNumber variable is looking for nearby items or enemies, and moving to them. This will do nothing, because there are no items or enemies to be found unless you move to the proper X and then summon them with the spell. The pointValue variable is looping through every single element of the 2d array. So what the comment "If it's a positive number:" is asking you to do, is to see if the pointValue variable is a positive number. And if it is, then you will need to move to that number, and say the spell.
Using my example of powerMap above, pointValue will have a different value every loop. first it will be 0, then 0, then 1, then 0, then 3, etc.