1.1 When talking divisors, there's usually a use of the modulo operator, %. dividend%divisor=remainder. If the remainder is 0, the divisor should be added to the sum. If you advance your divisors in the loop by 2 each time, after starting at 1, you go over only the odd ones. When you're done with a loop searching for all the odd divisors, run a quick check of whether the sum is still equal to 0 or it got changed, then use it to determine what to return.
1.2 Start with the negative/non-negative check, not unlike the check from the previous one. Then have your sum variable ready with the value of 1000, and start a loop summing up each fraction. When you're done, return.
1.3 You could write a recursive function. Might be controversial depending on your teacher, since it gets grossly inefficient in larger numbers. The recursive function basically does this 3-way condition as seen in eq.1. If n>1, it calls to itself but with the decremented values. The decremented values will continue to automatically decrease until they reach either 0 or 1, which have definite values and thus end the recursion. It's really just a 3-way condition and returning the value.
If you don't feel like doing recursion, you could do a running calculation with a loop. Keep two variables for P(m-2) and P(m-1), use them to calculate P(m). If m is equal to n, return solution, otherwise move P(m-1) into P(m-2) and P(m) into P(m-1), and do it again for the incremented m, until you eventually reach n.
1.4 I'm not familiar with Python specifically, but general approach imo is to consider the string as an array. Cycle through the array's indexes (loop I guess), and see if the array's values match any of the specified special characters. There might be a way to play with the ASCII values of the characters, like saying "larger or equal to e, smaller or equal to j" but again I don't really know Python. If the character is extraordinary, increment your count. In the end, return count.