Let us help you find the training program you are looking for.

If you can't find what you are looking for, contact us, we'll help you find it. We have over 800 training programs to choose from.

Intermediate Python

  • Course Code: IntmPython2112
  • Course Dates: Contact us to schedule.
  • Course Category: Big Data & Data Science Duration: 4 Days


Once students have mastered the basics of Python via our introductory Python course or their own work, it’s time to move on to applying Python to daily programming needs. This course picks up where Python I leaves off, covering some topics in more detail, and adding many new ones, with a focus on enterprise development.

This is a hands-on programming class.  All concepts are reinforced by informal practice during the lecture followed by lab exercises. Many labs build on earlier labs, which helps students retain the earlier material.


All students should be able to write simple Python scripts, using basic data types, program structures, and the standard Python library.


Intermediate Python is 40% hands-on, 60% lecture, with the longest lecture segments lasting for around 45 minutes. Students “learn by doing,” with immediate opportunities to apply the material they learn to real-world problems.

Course Materials

In addition to the 300+ page course manual, students will receive a double-sided Python quick reference.


All attendees will learn to use Python to:

  • Leverage OS services
  • Code graphical interfaces for applications
  • Create modules
  • Create and run unit tests
  • Define classes
  • Interact with network services
  • Query databases
  • Process XML and JSON data

Course Outline

1 — Python refresher

  • Data types
  • Sequences
  • Mapping types
  • Program structure
  • Files and console I/O
  • Conditionals
  • Loops
  • Builtins

2 — OS Services

  • The os module
  • Environment variables
  • Launching external commands
  • Walking directory trees
  • Paths, directories, and filenames
  • Working with file systems
  • Dates and times

3 — Pythonic Programming

  • The Zen of Python
  • Common idioms
  • Named tuples
  • Useful types from collections
  • Sorting
  • Lambda functions
  • List comprehensions
  • Generator expressions

String formatting

4 – Modules and packages

  • Initialization code
  • Namespaces
  • Executing modules as scripts
  • Documentation
  • Packages and name resolution
  • Naming conventions
  • Using imports
  • Distributing modules

5 — Classes

  • Defining classes
  • Instance methods and data
  • Initializers
  • Class methods
  • Static methods
  • Inheritance
  • Multiple inheritance

6 — Metaprogramming

  • Implicit properties
  • globals() and locals()
  • Attributes
  • The inspect module
  • Callable classes
  • Decorators
  • Monkey patching

7 – Enterprise development

  • Analyzing programs with pylint
  • unittest overview
  • Simple unit tests
  • Creating and running test suites
  • Profilng and Benchmarking

8 — Database access

  • The DB API
  • Available Interfaces
  • Connecting to a server
  • Creating and executing a cursor
  • Fetching data
  • Parameterized statements
  • Metadata
  • Transaction control

9 – GUI Programming with PyQt

  • Overview
  • Qt Architecture
  • Using designer
  • Standard widgets
  • Event handling
  • Extras

10 — Network Programming

  • Using requests
  • Sending email
  • Working with binary data
  • Consuming RESTful services

11 — Multiprogramming

  • The threading module
  • Sharing variables
  • The queue module
  • The multiprocessing module
  • Creating pools
  • About async programming

13 – Serializing data

  • Working with XML
  • XML modules in Python
  • Getting started with ElementTree
  • Parsing XML
  • Updating an XML tree
  • Creating a new document
  • About JSON
  • Reading JSON
  • Writing JSON
  • Reading/writing CSV files

14 — Extending Python with C

  • About non-Python modules
  • Using ctypes
  • Setting paramter/return types
  • About Cython and Numba

Hardware/Software Requirements / Software Needed on Each Student PC
The following should be installed on each student PC:

  • Python 3.2 (available from  http://www.python.org/ or http://www.activestate.com/Products/ActivePython/
  • Any common database manager (MySQL, SQLlite, etc.)
  • Any IDE or programmer’s editor (Eclipse, Komodo Edit, gVim, Notepad++, Emacs, etc.)
  • Any Windows, Unix/Linux, or Mac operating system

Note: detailed setup instructions are provided in a separate document

View All Courses

    Course Inquiry

    Fill in the details below and we will get back to you as quickly as we can.

    Interested in any of these related courses?