learning python the hard way 3