‹ Back To Training

Python – Intermediate

Timeline: 3 Days


Expand All › ‹ Collapse All

  • Review basic Python syntax
  • Datatypes overview (list, dict, tuple, set, string)
  • Review basic Python syntax
  • Datatypes: namedtuple, defaultdict, orderddoct, deque, etc
  • Functional programming: map/filter/reduce, lambda, list.sort, operator modules
  • Functional closures and decorators
  • List comprehensions, generator expressions, and generator functions
  • Iteration: iter(), iter, next(), itertools, chain, groupby, etc
  • Understanding the yield statement
  • What is a context manager
  • The ‘with’ statement
  • Working with a context manager: contextlib.closing, enter and exit
  • Using contextlib.contextmanager
  • Review of key texting concepts: unit, functional, integration, etc.
  • Overview of test-driven development concepts
  • Writing tests unit test with a test-first approach
  • Unit testing with the unittest module
  • Creating test suites with nosetests as a test collector
  • Performing simple code coverage analysis with coverage
  • Importance of logging
  • Basic logging concepts within Python
  • Using basicConfig to set up loggers, handlers, formatters
  • Using fileConfig for more complex logger configurations
  • Open-source modules to Python for common mathematical and numerical routines
  • Demonstration of common pre-compiled and fast functions (use cases)
  • Vector and matrix mathematics
  • Special functions in SciPy related to vectorization (vq, weave)
  • Data frames
  • Aggregation and grouping of data
  • Reshaping, transforming, and cleaning of data
  • Scraping data: web API, parsing html and XML, JSON (encoder/decoder)
  • Process class and using the multiprocessing module
  • Synchronization between processes
  • Exchanging objects between processes: pipes, queues, and circular buffers
  • Sharing state between processes (shared memory and server process)
  • Python Semaphores and Mutex
  • Synchronization events
  • Review of network programming concepts and protocol layers
  • Network programming support within Python
  • Fetching web resources with urllib/urllib2
  • Sending email with smtplib
  • Creating client-server like applications using sockets
  • Creating a simple JSONREST client