exercises from think python book