exercises from Python the hard way