SMS: Learning Python Mark Lutz and David Ascher. [electronic resource] /