Table of contents : Cover Front Matter 1. Introduction 2. Where is Python Used 3. Setting up the Python Environment 4. A First Python Program 5. Python Strings 6. Numbers, Booleans and None 7. Flow of Control Using if Statements 8. Iteration/Looping 9. Number Guessing Game 10. Recursion 11. Introduction to Structured Analysis 12. Functions in Python 13. Scope and Lifetime of Variables 14. Implementing a Calculator Using Functions 15. Introduction to Functional Programming 16. Higher-Order Functions 17. Curried Functions 18. Introduction to Object Orientation 19. Python Classes 20. Class Side and Static Behaviour 21. Class Inheritance 22. Why Bother with Object Orientation? 23. Operator Overloading 24. Python Properties 25. Abstract Base Classes 26. Error and Exception Handling 27. Python Modules and Packages 28. Protocols, Polymorphism and Descriptors 29. Decorators 30. Iterables and Iterators 31. Generators and Coroutines 32. Collections, Tuples and Lists 33. Sets 34. Dictionaries 35. Frozensets 36. Collection Related Modules 37. ADTs, Queues and Stacks 38. Map, Filter and Reduce 39. Sorting and Higher-Order Functions 40. Python Enumerated Values 41. Structural Pattern Matching 42. Python Virtual Environments 43. Monkey Patching 44. Attribute Lookup 45. The Python Bites Back 46. TicTacToe Game