Python Training Course
Course Summary
Python Fundamentals is a 4-day training course in the Python language and its many applications. The course covers the language itself, explains object-oriented as well as functional programming techniques, error handling, packaging, system and network programming, many of the Python extensions (libraries), as well as best practices. All concepts are explained through hands-on examples and exercises, so students learn by coding in Python.[top] Duration
4 days.
[top] Objectives
This is a fast-paced lab course, designed to bring seasoned programmers up-to-speed in Python, as quickly as possible. While attending this course, you will experience:
- Pythonic thinking.
- Python's input and output details: stdio and file io.
- Python's interesting and extra-useful flow-of-control devices.
- Python's simple and robust error handling.
- Python's flexible function protocols.
- Python's memory model.
- Python's straight-forward object-oriented features.
- Python's built-in data types: using them, and inheriting from them in classes you design.
- Python's list comprehensions, decorators, iterators, generators, context managers.
- Python's scheme for creating and using libraries and packages.
- Python's handy libraries for many developer/administrator tasks: shutil, tempfile, subprocess, glob, profile, shelve, os, sys, optparse, unittest.
- Python's architecture, which allows you to get working very quickly with any Python library (there are thousands).
[top] Audience
This course is designed for developers, system administrators, and QA engineers, who wish to be able to develop, automate, and test applications and systems using one of the most powerful programming languages available today.
[top] Prerequisites
Students should have prior programming experience and be familiar with basic concepts such as variables/scopes, flow-control, and functions. Prior exposure to object-oriented programming concepts is not required, but definitely beneficial.
[top] Instructors
Simeon Franklin has been been writing software since 1999 using Perl, VB, Delphi and PHP. Simeon has been writing dynamic web applications since 2001. He used several different technologies in that time: classic ASP pages and CGI back when that was state of the art and then PHP for about 6 years. He started out working for a small Web Development shop in downtown Modesto. After a few years of growth the company was acquired by a local ISP and Simeon became the Lead Developer in their Web Division.
In this phase of his career Simeon was fairly prolific - turning out many well-used sites in addition to being the primary developer of an in-house CMS and the general web-tech goto guy for three firms in succession.
In 2008 after working as the lead developer for a web design firm he discovered Python and liked it so much he quit his job to use it. Since then he has worked for companies writing large data processing and warehousing applications in Python and Django. He participates in the Python Community in the Bay Area and is a moderator of the oldest Bay Area Python Interest Group (Baypiggies) which is held at Google and Symantec each month.
More about Simeon Franklin...[top] Outline
Output
- Executing a Python program
- Syntax: code blocks, colons
- if, elif and else
- while and another else
- Writing to stdout
- Relational and logical operators
Input
- Input from stdin
- Factory functions
- Catching an exception:
- yet another else
- Formatted strings
- Integer division issue
for range
- range operator
- for loop
- tuples
Functions
- Function protocols
- import and reload
- Module: random
- Introspection
Scope
- Indentifier scope
- Default arguments
- Keyword arguments
Sequences
- Sequence types: str, tuple, list
- Sequence slicing and other manipulations
Important Trick
- Module: sys
- Important trick:
- _name_and_'_main_'
- Valid identifiers
Comprehensions
- Scope issues
- List comprehensions
Dictionaries
- Importing with from
- Dictionaries
File IO
- File I/O
- Module: os
- Walking A Directory
Packages
- Modules: shutil, tempfile
- Python Packages
- Debugging
Dynamic Code
- Dynamic Code Generation
- Modules:
- subprocess
- glob
- profile
Function Fancies
- Function protocols: variable length argument lists
- Formatted printing using a dictionary for replacement
- Unpacking sequences and dictionaries
- Generators (Optional)
- Decorators (Optional)
OOP
- Module: shelve
- Classes
- Inheritance
- Class variable
Overriding
- Overriding
- Has-A vs Is-A relationships
New Style Classes
- Useful attributes
- Iterators
- New style classes
- Attribute control (Optional)
- property (Optional)
- Static methods (Optional)
- Class methods (Optional)
- Diamond inheritance (Optional)
Developer Modules
- Context Manager class
- Module: unittest
- Module: optparse
Wrap Up
- Exceptions
- Namespaces
- Nests
- Pitfalls
- Finding Modules and Help
re Module
- re - Regular Expressions
- Search and replace
- Named groups
re Syntax
- Regular expression syntax
- Testing regular expressions
[top] Additional Notes
About the Platform
This course can be taught on most major operating systems, which support Python, such as Windows, Linux, Mac OS X, etc.
Trademarks
"Python" is a registered trademark of the Python Software Foundation. All other marks are the properties of their respective owners.
[top] Student Testimonials
Simeon is a great instructor, he really knows Python, and can explain complex topics so even those new to Python can grasp them.
Excellent class. I definitely learned a lot. Instructor was extremely knowledgable material. He presented the material very well. I feel like I understood about 99% of things that were presented. Simeon was very enthusiastic about helping the students with labs and explaining things that they did not completely understand.
This was an excellent course, well-designed for the audience, with appropriate pacing. Incredible instructor - it was clear that she's been doing this for a long time. I enjoyed her humor and her depth of knowledge.
Robert customized the course to our needs really well. He is an excellent instructor and exhibited sound knowledge of Python and a lot of patience when dealing with us. He was super flexible in every aspect and I am very pleased with the overall experience.
I could not imagine what could be improved in this course. Thank you so much! I highly recommend Marakana for training. My instructor was highly knowledgable and the training exceeded all my expectations!
Simeon is very knowledgeable and instrumental. With my limited in high-level programming, I can easily follow the teaching and be able to do what I was expecting. Hope a more advanced class can be made available as the follow-up to this. This class is good for the beginners with mostly hardware design experience. I recommend it to all the hardware engineers who would like to automate their work with some sort of easy-to-use programming language.
Charles had expert level understanding of the Python language. He had done a lot of hands-on implementation, especially in numerically intensive applications. This experience was very valuable.
I think everything was perfect and, as I said, I enjoyed the class a lot, and would definitely recommend the training to friends should they ask me for recommendations.
Instructor was awesome. Her presentation style was super-clear and very precise.
Labs = great! I wanted more of them, and more time to do them, at every step of the way. It makes it easier to learn that way. Simeon is SUPER knowledgeable with Python AND many other languages, which is great because he can compare and contrast them. He now only knows teaches the syntax and language, but how to use it efficiently. I was a bit under the learning level, not having programmed before like most everyone else in the class, so I felt like I was constantly having to catch up, but I still learned a LOT and highly recommend this class for programmers fluent in Java or C or such that want to learn Python as well. Take this and you will be off and running!
Simeon was great.
The training is very well organized and delivered. Rob Zuber did the excellent job. Many thanks!
All in all, the class was super helpful, and Rob was an expert on the subject. I would definitely recommend Rob and Marakana to anyone.
Simeon is a great instructor.
Excellent coverage of the techniques and pitfalls of Python Programming using extensive examples and code walk-through's.