Explorations in computing: an introduction to computer science and Python programming - Conery, John S (Chapman & Hall/CRC textbooks in computing, 2015)
"This text helps beginners develop their own Python programs. Experiments with fully completed programs are provided at the beginning of each chapter, allowing instructors to use the text in CS0 courses where students do not learn programming. Programming projects appear later in each chapter. Students are encouraged either to write the code that implements the functions introduced earlier or extend the existing programs. All the projects push students to explore further on their own"--