Intermediate Python (DTAE8030P001)


Intermediate Python


This 4-day course picks up where Introduction to Python 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.

Who Should Attend?

Advanced users, system administrators and web site administrators who want to use Python to support their server installations, as well as anyone else who wants to automate or simplify common tasks with the use of Python scripts.




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




2.8 CEU's

Class Type:

This course is currently being offered in the following training modalities:

Learning Outcomes:

By the end of this course, students will be able to:

  • Dive deeper into Python's core concepts, including variables, basic data types, sequences, and mapping types.
  • Identify Pythonic programming principles, such as adhering to the Zen of Python, employing common Python idioms, and using powerful language features like lambda functions, list comprehensions, and generators.
  • Work with Python modules and packages, including import mechanisms, module search paths, namespaces, and the use of special methods for module execution.
  • Define classes, create instance objects, work with instance attributes and methods, understand inheritance, and apply class-private variables and static methods effectively.
  • Understand more advanced Python knowledge, including metaprogramming techniques, using developer tools like Pylint and the Python Debugger, working with databases through the DB API, and extending Python with C for performance and customization.

Register For Online Course


Bring This Class To My Location

Course Outline:

Python Refresher

  • Variables
  • Basic Python Data Types
  • Sequences
  • Mapping Types
  • Program Structure
  • Files And Console I/O
  • Conditionals
  • Loops
  • Builtins

OS Services

  • The OS Module
  • Paths, Directories, and Filenames
  • Environment Variables
  • Launching External Programs
  • Walking Directory Trees
  • The Datetime Module
  • The Calendar Module

Pythonic Programming

  • The Zen of Python
  • Common Python Idioms
  • Unpacking Function Arguments
  • Lambda Functions
  • List Comprehensions
  • Iterables
  • Writing Generators
  • String Tricks
  • String Formatting


  • Using Import
  • Module Search Path
  • Namespaces
  • Executing Modules as Scripts
  • Packages
  • Configuring Import With __Init__.Py

Intermediate Python 3.x

  • Name Resolution (AKA Scope)
  • Python Style


  • Defining Classes
  • Instance Objects
  • Instance Attributes
  • Instance Methods
  • __Init__
  • Properties
  • Class Data
  • Class Methods
  • Inheritance
  • Multiple Inheritance
  • Using Super ()
  • Special Methods
  • Class-Private Variables
  • Static Methods


  • Globals() and Locals()
  • Working with Attributes
  • The Inspect Module
  • Decorator Functions
  • Decorator Classes
  • Decorator Parameters
  • Creating Classes At Runtime
  • Monkey Patching

Developer Tools

  • Program Development
  • Comments
  • Pylint
  • Customizing Pylint
  • Using Pyreverse
  • The Unittest Module
  • Fixtures
  • Skipping Tests
  • Making a Suite of Tests
  • Automated Test Discovery
  • Using Nose
  • The Python Debugger
  • Starting Debug Mode
  • Stepping Through a Program
  • Setting Breakpoints
  • Profiling
  • Benchmarking

Database access

  • The DB API
  • Available Interfaces
  • Connecting to a server
  • connect() examples
  • Creating a cursor
  • Executing a statement
  • Parameterized statements
  • Dictionary cursors
  • Metadata
  • Transactions
  • Object-relational mappers


  • Event Driven Applications
  • Gui Application Flow Chart
  • External Anatomy of a Pyqt4 Application
  • Internal Anatomy of a Pyqt4 Application
  • Using Designer
  • Anatomy of a Designer-Based Application
  • Naming Conventions
  • Common Widgets
  • Layouts
  • Selectable Buttons
  • Actions and Events
  • Menu Bar
  • Status Bar
  • Using Predefined Dialogs
  • Creating Custom Dialogs
  • Tabs
  • Niceties
  • Working with Images
  • Complete Example

Network Programming

  • Sockets
  • Socket Options
  • Client Concepts
  • Server Concepts
  • Application Protocols
  • Forking Servers
  • Grabbing Html from The Web
  • Consuming Web Services
  • Web Data the Easier Way
  • Sending Email
  • Binary Data
  • The Struct Module


  • What Are Threads?
  • The Python Thread Manager
  • The Threading Module
  • Threads for the Impatient
  • Creating a Thread Class
  • Variables Sharing
  • Using Queues
  • Debugging Threaded Programs
  • The Multiprocessing Module
  • Alternatives to Multiprogramming

System Administration and Scripting

  • The Subprocess Module
  • Subprocess Convenience Functions
  • Using the Sh Module
  • Permissions
  • Saving Information
  • Creating a Useful Command Line Script
  • Creating Filters
  • Parsing the Command Line
  • Simple Logging
  • Logging Levels
  • Formatting Log Entries
  • Logging to Other Destinations


  • About Xml
  • Normal Approaches to Xml
  • Which Module to Use?
  • Getting Started With ElementTree
  • How ElementTree Works
  • Creating a New Xml Document
  • Parsing an Xml Document
  • Navigating the Xml Document
  • Using XPath
  • Advanced XPath
  • About JSON
  • Reading JSON
  • Writing JSON

Extending Python with C

  • Why Extend Python?
  • Ways to Extend Python With C
  • Hand-Coded C
  • Overview
  • The C Program
  • Methods
  • The Method Table
  • The Init Function
  • Handling Errors
  • Custom Exception Objects
  • Putting It All Together
  • Using SWIG
  • The Interface Fle
  • Generating the Wrappers
  • Building and Installing The Extension
  • Ctypes

Get in Touch!

questions icon

Have a Question?

We're here to help. Send us an email or call us at 1 (888) 744-4723