Solved Parts 1 and 2 of pythonchallenge.com