Python Beginner Training Course
We are a member of the Python Software Foundation
Whether you are new to programming or a professional developer, this book is designed to bring you up to
speed on the Python language in ways that more limited approaches cannot.
After this course you should be able to
Start programming in Python and tackle real world solutions in Python as taught on our Advanced Python course
Consider doing our Advanced Python course
We give you an original copy of the book: Learning Python (by Mark Lutz) as we use this mainly,
but we also give additional examples where it falls short.
The contents could be adjusted slightly to best suit the group’s skill level and / or requirements.
- Why Do People Use Python?
- Is Python a “Scripting Language”?
- What’s the Downside?
- Who Uses Python Today?
- What Can I Do with Python?
- How Is Python Developed and Supported?
- What Are Python’s Technical Strengths?
- How Does Python Stack Up to Language X?
How Python Runs Programs
- Introducing the Python Interpreter
- Program Execution
- Execution Model Variations
How You Run Programs
- The Interactive Prompt
- System Command Lines and Files
- Unix-Style Executable Scripts: #!
- Clicking File Icons
- Module Imports and Reloads
- Using exec to Run Module Files
- The IDLE User Interface
- Other IDEs
- Other Launch Options
- Which Option Should I Use?
Types and Operations
- Why Use Built-in Types?
- Python’s Core Data Types
- Other Core Types
- Numeric Type Basics
- Numbers in Action
- Other Numeric Types
- Numeric Extensions
The Dynamic Typing Interlude
- The Case of the Missing Declaration Statements
- Shared References
- Dynamic Typing Is Everywhere
- String Basics
- String Literals
- Strings in Action
- String Methods
- String Formatting Expressions
- String Formatting Method Calls
- General Type Categories
Lists and Dictionaries
- Lists in Action
- Dictionaries in Action
Tuples, Files, and Everything Else
- Core Types Review and Summary
- Built-in Type Gotchas
Statements and Syntax
- The Python Conceptual Hierarchy Revisited
- Python’s Statements
- A Tale of Two ifs
- A Quick Example: Interactive Loops
Assignments, Expressions, and Prints
- Assignment Statements
- Expression Statements
- Print Operations
if Tests and Syntax Rules
- if Statements
- Python Syntax Revisited
- Truth Values and Boolean Tests
- The if/else Ternary Expression
- Why Use Exceptions?
- Exceptions: The Short Story
- The try/except/else Statement
- The try/finally Statement
- Unified try/except/finally
- The raise Statement
- The assert Statement
- with/as Context Managers
While and for Loops
- while Loops
- break, continue, pass, and the Loop else
- for Loops
- Loop Coding Techniques
Iterations and Comprehensions
- Iterations: A First Look
- List Comprehensions: A First Detailed Look
- Other Iteration Contexts
- New Iterables in Python 3.X
- Other Iteration Topics
The Documentation Interlude
- Python Documentation Sources
- Common Coding Gotchas
- Why Use Functions?
- Coding Functions
- A First Example: Definitions and Calls
- A Second Example: Intersecting Sequences
- Python Scope Basics
- The global Statement
- Scopes and Nested Functions
- The nonlocal Statement in 3.X
- Why nonlocal? State Retention Options
- Why Use Modules?
- Python Program Architecture
- How Imports Work
- Byte Code Files: __pycache__ in Python 3.2+
- The Module Search Path
- Module Creation
- Module Usage
- Module Namespaces
- Reloading Modules
Classes and OOP
- Why Use Classes?
- Classes Generate Multiple Instance Objects
- Classes Are Customized by Inheritance
- Classes Can Intercept Python Operators
- The World’s Simplest Python Class
- The class Statement
- Namespaces: The Conclusion
- Documentation Strings Revisited
- Classes Versus Modules
- OOP and Inheritance: “Is-a” Relationships
- OOP and Composition: “Has-a” Relationships
- OOP and Delegation: “Wrapper” Proxy Objects
- Pseudoprivate Class Attributes
- Methods Are Objects: Bound or Unbound
- Classes Are Objects: Generic Object Factories
- Multiple Inheritance: “Mix-in” Classes
- Other Design-Related Topics
- 7 Steps to a Full Class-Based Application