Preface
- Errata and Suggestions
- Conventions Used in This Book
- Code examples
Welcome Apprentice!
Python Promo
Overview
What is Python?
- It’s a programming language!
- It’s a standard library!
- It’s a philosophy
The journey of a thousand miles…
Chapter 1 – Getting started
- Obtaining and installing Python 3
- Starting Python command line REPL
- Leaving the REPL
- Code structure and significant indentation
- Python culture
- Importing standard library modules
- Getting
help() - Scalar data types: integers, floats, None and bool
- Relational operators
- Control flow: if-statements and while-loops
- Summary
Chapter 2 – Strings and collections
str– an immutable sequence of Unicode code points- Moment of zen
bytes– an immutable sequence of bytes- String differences between Python 3 and Python 2
list– a sequence of objectsdict– associating keys with values- For-loops – iterating over series of items
- Putting it all together
- HTTP access problems?
- Summary
Chapter 3 – Modularity
- Organizing code in a .py file
- Defining functions
- Organizing our module into functions
- Speaking Python aloud
- The Python execution model
- Setting up a main function with command line argument
- Moment of zen
- Docstrings
- Comments
- Shebang
- Summary
Chapter 4 – Built-in types and the object model
- The nature of Python object references
- Argument passing semantics – pass by object-reference
- Python return semantics
- Function arguments in detail
- The Python type system
- Variable declaration and scoping
- Moment of zen
- Everything is an object
- Summary
Chapter 5 – Exploring built-in collection types
tuple– an immutable sequence of objects- The tuple constructor
- Strings in action
- Moment of zen
range– a collection of evenly spaced integerslistin action- Dictionaries
set– an unordered collection of unique elements- Collection protocols
- Summary
Chapter 6 – Exceptions
- Exceptions and control flow
- Handling exceptions
- Handling multiple exceptions
- Programmer errors
- Empty blocks – the
passstatement - Exception objects
- Imprudent return codes
- Re-raising exceptions
- Exceptions are part of your function’s API
- Guard clauses
- Exceptions, APIs, and protocols
- Choosing not to guard against
TypeError - Pythonic style – EAFP versus LBYL
- Clean-up actions
- Moment of zen
- Platform-specific code
- Summary
Chapter 7 - Comprehensions, iterables, and generators
- Comprehensions
- Moment of zen
- Iteration protocols
- Generator functions
- Generator expressions
- “Batteries included” iteration tools
- Pulling it all together
- Summary
Chapter 8 – Defining new types with classes
- Defining classes
- Instance methods
- Instance initializers
- Validation and invariants
- Adding a second class
- Collaborating classes
- Moment of zen
- Booking seats
- Naming methods for implementation details
- Sometimes the only object you need is a function
- Polymorphism and duck-typing
- Inheritance and implementation sharing
- Summary
Chapter 9 – Files and resource management
- Files
- Context managers
- Moment of zen
- Binary files
- File-like objects
- Other resources
- Summary
Chapter 10 – Unit testing with the Python standard library
- Test cases
- Fixtures
- Assertions
- Unit testing example: text analysis
- Using fixtures to create temporary files
- Using the new fixtures
- Using assertions to test behavior
- Testing for exceptions
- Testing for file existence
- Moment of zen
- Summary
Chapter 11 – Debugging with PDB
- Debugging commands
- Palindrome debugging
- Summary
Afterword: Just the Beginning
Appendix A – Virtual environments
- Creating a virtual environment
- Activating a virtual environment
- Deactivating a virtual environment
- Other tools for working with virtual environments
Appendix B – Packaging and distribution
- Configuring a package with
distutils - Installing with
distutils - Packaging with
distutils
Appendix C – Installing third-party packages
- Introducing
pip - The Python Package Index
- Installing local packages with
pip - Uninstalling packages