Providing Technology Training and Mentoring For Modern Technology Adoption
Web Age Aniversary Logo
US Inquiries / 1.877.517.6540
Canadian Inquiries / 1.877.812.8887
Course #:TTPS4850

Advanced Python Programming Training

Geared for experienced Python programmers, Advanced Python Programming is a practical, hands-on Python training course that thoroughly explores intermediate to advanced level topics and skills, teaching students how 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 data and much more.

This comprehensive, practical course provides an in-depth exploration of working with advanced python scripting, not an academic overview of syntax and grammar. Students will immediately be able to use advanced Python skills to complete tasks in the real world.

What You'll Learn

This course provides indoctrination in the practical use of the umbrella of technologies that are on the leading edge of web development.  Throughout the course students will be led through a series of progressively advanced topics, where each topic consists of lecture, group discussion, comprehensive hands-on lab exercises, and lab review. This course is “skills-centric”, designed to train attendees in essential, advanced Python and web development skills, coupling the most current, effective techniques with the soundest scripting and development practices.

Working within in an engaging, hands-on learning environment, guided by our expert team, attendees will learn 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 data

Audience

This course is appropriate for experienced Python programmers. Students should be able to write simple Python scripts, using basic data types, program structures and the standard Python library.

Duration

4 days

Outline of Advanced Python Programming Training

Session 1: Python Refresher

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

Session 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

Session 3: Pythonic Programming

  • The Zen of Python
  • Common idioms
  • Lambda functions
  • List comprehensions
  • Generator expressions
  • String formatting

Session 4: Modules and packages

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

Session 5: Classes

  • Defining classes
  • Instance methods and data
  • Properties
  • Initializers
  • Class and static methods/data
  • Inheritance

Session 6 : Metaprogramming

  • Implicit properties
  • globals() and locals()
  • Working with attributes
  • The inspect module
  • Decorators
  • Monkey patching

Session 7: Programmer tools

  • Analyzing programs
  • Using pylint
  • Testing code
  • Using unittest
  • Debugging
  • Profiling and benchmarking

Session 8: Distributing modules

  • Distribution concepts
  • setuptools
  • creating setup.py
  • building installers
  • running installers

Session 9: Database access

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

Session 10: GUI Programming with PyQT4

  • About QT4
  • Getting started with the designer
  • Widget properties
  • Predefined dialogs
  • Generating the UI
  • Wiring up events
  • Advanced Topics

Session 11: Network Programming

  • Sockets
  • Clients
  • Servers
  • Application protocols
  • Forking servers
  • Binary data
  • The struct module

Session 12: Threads

  • When to use threads?
  • The Global Interpreter Lock
  • The threading module
  • Simple threading
  • Sharing variables
  • Threaded servers
  • The queue module
  • Debugging threaded programs
  • Alternatives to threading

Session 13: XML and JSON

  • Working with XML
  • DOM and Sax
  • Introducing ElementTree and lxml
  • Parsing XML
  • Navigating the document
  • Creating a new XML document
  • JSON
  • Parsing JSON into Python
  • Converting Python into JSON

Session 14: Extending Python

  • About non-Python modules
  • Overview of a C extension
  • Writing C by hand
  • Loading modules with ctypes

Session 15: Subprocesses

  • Running external commands with subprocess
  • Getting command status
  • Managing STDOUT, STDERR, and STDIN
  • The sh module (non-Windows systems only)
  • Creating a simple command
  • Keyword arguments
  • Running commands in the background
  • Piping and redirection
  • Working with STDIO
  • Exit codes
  • Advanced features
We regularly offer classes in these and other cities. Atlanta, Austin, Baltimore, Calgary, Chicago, Cleveland, Dallas, Denver, Detroit, Houston, Jacksonville, Miami, Montreal, New York City, Orlando, Ottawa, Philadelphia, Phoenix, Pittsburgh, Seattle, Toronto, Vancouver, Washington DC.
US Inquiries / 1.877.517.6540
Canadian Inquiries / 1.877.812.8887