Home > Store

Python Programming Language LiveLessons

Online Video

Register your product to gain access to bonus material or receive a coupon.

Description

  • Copyright 2017
  • Edition: 1st
  • Online Video
  • ISBN-10: 0-13-421732-2
  • ISBN-13: 978-0-13-421732-1

6+ Hours of Video Instruction

Python Programming Language LiveLessons provides developers with a guided tour of the Python programming language, including an introduction to many of the advanced techniques used in libraries and frameworks.

Description

In this video training, David Beazley covers the essential features of Python programming through a series of practical programming examples. David assumes you are a programmer, familiar with central programming concepts such as control flow, functions, and data structures. The course provides programmers with an accelerated introduction to the essential parts of Python. Those with some previous Python experience will benefit from being exposed to modern Python style and programming idioms used by experienced programmers. Each lesson covers a “big idea” rather than taking an exhaustive, reference-style approach. In each lesson David addresses a specific, practical problem and demonstrates the solution through code. He explains the steps taken and why he is taking a particular approach.

Skill Level

  • Intermediate
  • Advanced
What You Will Learn
  • Python program structure and execution model
  • How to read and write data from files
  • How to effectively manipulate data using tuples, lists, sets, and dictionaries
  • How to define new functions
  • How to handle exceptions and errors
  • How to create new objects with classes
  • Essential object-oriented programming techniques
  • Customization of objects with special methods, properties, and descriptors
  • Metaprogramming features including decorators, class decorators, and metaclasses
  • Iterative data processing with generator functions
  • Placing code into modules and packages
  • How to use higher-order functions and closures
  • An introduction to coroutines and asynchronous I/O handling
Who Should Take This Course
  • Experienced programmers looking for a practical introduction to Python and current Python programmers interested in learning new techniques and ways of thinking about problems.
Course Requirements
  • Basic understanding of programming concepts, algorithms, and development tools
New Player Enables Streaming and Download Access

Now you can stream and download videos for unlimited 24/7 online/offline access and ownership.
  • Streaming—Watch instantly as the video streams online in real time; after purchase, simply click Watch Now to get started.
  • Download—Download video files for offline viewing anytime, anywhere; after purchase, simply click the Download icon within the player and follow the prompts.
Plus, enjoy new player features that track your progress and help you navigate between modules.

Lesson 1: Working Environment
Lesson 1 introduces the basics of working in the Python programming environment. This includes starting and stopping the interpreter, using the interactive console, editing and running programs, and turning simple programs into useful scripts. Getting help and some basic debugging tips are also described.

Lesson 2: Program Structure and Execution Model
Lesson 2 covers Python’s execution model and describes the statements related to variables, expressions, and simple control flow. It also covers using Python to perform simple mathematical calculations, making formatted output, and writing to a file.

Lesson 3: Text Processing and Files
To do almost anything useful, you need to be able to read data into your program. Lesson 3 addresses the problem of reading data from a file, basic techniques for manipulating text strings, converting input data, and performing calculations. It also introduces the csv module for reading data from CSV files.

Lesson 4: Functions and Error Handling
As you write larger programs, you will want to get organized. The primary way of doing this in Python is to write functions. And if you write functions, you will want them to play nicely with others. Lesson 4 addresses the problem of writing function definitions, handling exceptions, and coding practices that will help you when you start to write larger programs.

Lesson 5: Data Structures and Data Manipulation
One of the most critical Python skills to develop is being able to effectively use lists, tuples, sets, and dictionaries. Lesson 5 includes how to read a file into a useful data structure. It then explores different ways of performing calculations on the data, including data reductions, filtering, joining, and sorting. Particular attention is given to list, set, and dict comprehensions—a feature that greatly simplifies a wide variety of data processing tasks.

Lesson 6: Library Functions and Import
As you write larger Python programs, you will want to write library functions and split your code across multiple files. To do this, you need to start working with modules and packages. Lesson 6 delves into creating and using modules. It starts with how to use the import statement and some of its gotchas. Next it covers how to create a general purpose CSV parsing function and apply it to some of our earlier code. The lesson concludes with a discussion of organizing larger code bases into packages.

Lesson 7: Classes and Objects
Object-oriented programming is a fundamental part of the Python language. You see this whenever you use its built-in types and execute methods on the resulting instances. If you want to make your own objects, you can do so using the class statement. A class is often a convenient way to define a data structure and to attach methods that carry out operations on the data. Lesson 7 covers the basics of defining a new object, creating instances, and manipulating objects. It then helps you see how the dynamic nature of Python enables you to write highly generic functions. The Lesson concludes with a special topic on how to write classes that need to have more than one initializer method.

Lesson 8: Inheritance
One of the most challenging problems in writing larger programs is that of code reuse and extensibility. A common tool used to address this problem is inheritance. Lesson 8 addresses using inheritance to make a program extensible as well as some of the tricky practical concerns that might arise as a result. Some advanced inheritance concepts, such as multiple inheritance with mixin classes and abstract base classes, are also introduced. The lesson concludes by discussing a few important design considerations to take into account if you’re going to use inheritance.

Lesson 9: Python Magic Methods (a.k.a., Speaking Python)
When defining new objects, it is usually beneficial to make your objects play nicely with other parts of Python. This is typically done by adding special or "magic" methods to your class. Lesson 9 demonstrates some of the common customizations that are made to objects to simplify debugging, create containers, and manage resources. Although this section doesn’t cover every possible customization that can be carried out, it gives you a taste of what’s possible and a foundation for more exploration.

Lesson 10: Encapsulation (Owning the Dot)
Major issues that arise in larger programs are how to encapsulate internal implementation details and how to have more control over the ways in which developers interact with objects. Lesson 10 dives into some of the low-level details that make the Python object system tick. It then turns to techniques for taking control over attribute access and custom-tailoring the environment to address issues such as data validation, type checking, and more. Topics include defining private attributes, properties, descriptors, and redefining magic methods for attribute access.


Lesson 11: Higher Order Functions and Closures
Functions are the basic organizational unit of all Python programs regardless of whether or not they serve as a stand-alone function or the method of a class. Lesson 11 introduces some important functional programming concepts, including the idea of functions as first class objects, passing functions as data, and creating functions as results. Particular emphasis is placed on closures as a tool for generating and simplifying code.

Lesson 12: Metaprogramming and Decorators
One of the most difficult problems in developing larger programs is dealing with highly repetitive code. For example, as a general rule you want to avoid situations where you’re cutting and pasting common code fragments between functions or across files. Restructuring the design of your program might help solve such problems. However, another common technique is to encapsulate common code-oriented tasks into a decorator. Lesson 12 covers how to write decorators for processing both function and class definitions.

Lesson 13: Metaclasses
One of the problems faced by the creators of large applications and frameworks is exercising control over the greater programming environment. Code is often organized using classes, but sometimes there is much more to it than simply making class definitions. For example, classes might need to register their existence with some other part of a framework. Or perhaps the definition of a class is too verbose and needs to be simplified in some way. Or perhaps some other aspect of classes needs to be managed. An advanced technique for addressing these problems is to use a metaclass. Lesson 13 introduces the metaclass concept and some practical applications are shown.

Lesson 14: Iterators and Generators
One of Python’s most useful features is the for-statement, which is used to iterate over data. As you may have noticed, the for-statement works with a wide variety of objects such as lists, dicts, sets, and files. It’s also used in a variety of related features, such as list comprehensions. One of the most powerful features of iteration is that it can be easily customized. Lesson 14 starts with the iteration protocol and how to customize it using generator functions. It also covers how to apply iteration to data processing pipelines—a particularly powerful technique for working with data and problems involving workflows.

Lesson 15: Coroutines
Starting in Python 3.5, a special kind of function known as a "coroutine" could be defined using special async/await syntax. On the surface, coroutines look a lot like normal Python functions. However, under the covers they run under the supervision of a manager that coordinates their execution. Lesson 15 introduces coroutines and shows how they can be used to implement a simple network service that can handle thousands of concurrent client connections. It concludes by peeling back some of the covers to see how coroutines actually work and to explore their relationship to generators.

About LiveLessons Video Training

The LiveLessons Video Training series publishes hundreds of hands-on, expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. This professional and personal technology video series features world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, IBM Press, Pearson IT Certification, Prentice Hall, Sams, and Que. Topics include: IT Certification, Programming, Web Development, Mobile Development, Home and Office Technologies, Business and Management, and more. View all LiveLessons on InformIT at: http://www.informit.com/livelessons.

Sample Content

Table of Contents

Introduction

Lesson 1: Working Environment
Topics
1.1 Starting, Stopping, and Typing Commands into the Interactive Interpreter
1.2 Project: Catching the Bus
1.3 Project: Reading Command Line Arguments and Making a Script
1.4 Debugging

Lesson 2: Program Structure and Execution Model
Topics
2.1 Project: Mortgage Calculator
2.2 Project: Formatted Output and File I/O

Lesson 3: Text Processing and Files
Topics
3.1 File and String Basics
3.2 Project: Reading from a File and Performing a Calculation
3.3 Project: Using the CSV Module to Read Data

Lesson 4: Functions and Error Handling
Topics
4.1 Defining and Using Simple Functions
4.2 Project: Moving a Script into a Function
4.3 Project: Handling Bad Data and Exception Handling
4.4 Project: Function Design Considerations

Lesson 5: Data Structures and Data Manipulation
Topics
5.1 Basic Material: Tuples, Lists, Sets, and Dicts
5.2 Project: Building a Data Structure from a File
5.3 Data Manipulation.
5.4 Example: Sorting and Grouping

Lesson 6: Library Functions and Import
Topics
6.1 Module Basics
6.2 Project: Writing a General Purpose CSV Parsing Module
6.3 Making a Package

Lesson 7: Classes and Objects
Topics
7.1 Introduction: From Simple Data Structures to Classes
7.2 Understanding Attribute Access
7.3 Advanced: Class Methods and Alternate Constructors

Lesson 8: Inheritance
Topics
8.1 Inheritance Concepts
8.2 Inheritance in Practice: Building an Extensible Library
8.3 Advanced Inheritance
8.4 Designing for Inheritance
8.5 Defensive Programming with Abstract Base Classes
8.6 Advanced: How Inheritance Actually Works

Lesson 9: Python Magic Methods (a.k.a., Speaking Python)
Topics
9.1 Background: Use of Magic Methods to Implement Operators
9.2 Making Objects Printable and Debuggable
9.3 Making a Custom Container Object
9.4 Making a Custom Context Manager

Lesson 10: Encapsulation (Owning the Dot)
Topics
10.1 Instance Representation, Attribute Access and Naming Conventions
10.2 Managed Attributes with Properties
10.3 Managed Attributes with Descriptors
10.4 Object Wrappers and Proxies

Lesson 11: Higher Order Functions and Closures
Topics
11.1 Functions as Objects
11.2 Generating Code with Closures

Lesson 12: Metaprogramming and Decorators
Topics
12.1 Background: Function Argument Passing and Calling Conventions
12.2 Don't Repeat Yourself—Introducing Decorators
12.3 Decorators with Arguments
12.4 Class Decorators

Lesson 13: Metaclasses
Topics
13.1 Background: Types and Metaclasses Introduced
13.2 Project: Tracking Subclasses in a Framework
13.3 Project: Filling in Missing Details and Code Generation

Lesson 14: Iterators and Generators
Topics
14.1 Iteration Protocol and Customization via Generators
14.2 Project: Watching a Real-Time Data Source with a Generator
14.3 Processing Pipelines and Workflows

Lesson 15: Coroutines
Topics
15.1 Defining and Calling Coroutines with async/await
15.2 Project: Asynchronous Echo Server with Coroutines and asyncio
15.3 Under the Covers: Enhanced Generators

Summary

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020