Practical Python Programming
Designed for professional software developers, scientists, engineers and analysts, this course is a comprehensive introduction to the Python programming language, standard library, and Python programming techniques. Although the course assumes no prior experience with Python, experience with another programming language is required. The course is strongly focused on practical applications including scripting, data processing, systems administration, and integrating Python with other software.
The course is taught over three days and covers the Python language and critical library modules for writing useful programs. This includes testing, files, file system, subprocesses, databases, and systems integration.
- Introduction to Python.
The first section of the course is an introduction to the Python programming language. It introduces the details of how to start and stop the interpreter and write programs, and explains basic data-types, files, functions, and error handling.
- Working with Data.
Section 2 provides a detailed tour of how to represent and work with data in Python. It covers tuples, lists, dictionaries, and sets, as well as NumPy arrays. Students will learn the critical aspects of Python's underlying object model including variables, reference counting, copying, and type checking and how to effectively use Python's very powerful list processing primitives.
- Program Organization and Functions.
More information about how to organize larger programs into functions is provided in Section 3. A major focus is placed on design functions and the technical details of functions, including scoping rules and documentation strings.
- Modules and Libraries.
Section 4 addresses how to organize programs into modules and use those modules as a tool for creating extensible programs. It concludes with a tour of some of the most commonly used library modules including those related to system administration, text processing, subprocesses, XML parsing, binary data handling, and databases.
Note: In addition, an optional section on using numpy and matplotlib to process numeric data can be taught depending on student interest.
- Classes and Objects.
In Section 5, students are given an introduction to object-oriented programming in Python. Topics such as how to create new objects, overload operators, and utilize Python special methods will be explained, along with the basic principles of object oriented programming including inheritance and composition.
- Inside the Python Object System.
Section 6 provides a detailed look into how objects are implemented in Python. Major topics include object representation, attribute binding, inheritance, memory management, and special properties of classes including properties, slots, and private attributes.
- Testing, Debugging, and Software Development Practice.
This section discusses many issues that are considered important to Python software development. This includes effective use of documentation strings, program testing using both the doctest and unittest modules, and effective use of assertions. The Python debugger and profiler are also described.
- Iterators and Generators.
Section 8 covers the iteration protocol, iterable objects, generators and generator expressions. A major focus of this section is on the use of generators to set up data processing pipelines - a particularly effective technique for addressing a wide variety of common systems programming problems (e.g., processing large datafiles, handling infinite data streams, etc.).
- Text I/O Handling. (Optional)
This section provides more information on text-based I/O. Topics include text generation, template strings, and Unicode.
- Some Advanced Topics. (Optional)
Section 10 provides a variety of more advanced programming topics, including variable argument functions, anonymous functions (lambda), closures, decorators, static and class methods, and packages.
- Python Integration Primer. (Optional)
Section 11 is a survey of how Python is able to interact with programs written in other programming languages. Topics include network programming, accessing C code, COM extensions, Jython, and IronPython.
Schedule a Course
To attend a course, please check the corresponding course page to find the next class being taught, or contact us to schedule a private session. Classes are typically scheduled at least 8 weeks in advance and can be held worldwide.
Organizations who purchase classroom training sessions are eligible to receive 25% off any virtual class for employees a period of one year after the classroom training date. Contact firstname.lastname@example.org for more details.