Python Beginner Training Course
We are a member of the Python Software Foundation
You should already be at the Introduction to Programming.
If in doubt, you must be able to pass this test in a programming language of your choice, before attempting this course.
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
- 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
- Duration and pricing
- Full-time over 5 days (R9995)
- Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R11995)
- Part-time over 8 Saturdays, 3 hour sessions (R11995)
- Please note : For part-time courses we do not have a fixed schedule and you will be placed on a waiting list until we get a group of 4+ together. Please book with no dates on the bookings form. This will automatically put you on the waiting list. We will confirm with you as soon as we have a part-time group together.
- Distance-learning over up to 3 months (R9995)
- International exams are not included in the course price.
- Prices exclude Vat
- Upon completion of this course we will issue you with attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
- You may sit for our competency assessment test and on passing you will obtain our competency certificate.
- Our competency assessment can be booked and taken by someone who has not attended the course at a cost of R950.
You can download the course registration form on our home page or by clicking here
You may download a pdf copy of this page by clicking on the pdf icon at the top of the page.
Please email us
On the calendar below. If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our Contact Us page.
- We are a member of the Python Software Foundation