O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Python Survival Skills

Video Description

Sneak Peek

The Sneak Peek program provides early access to Pearson video products and is exclusively available to Safari subscribers. Content for titles in this program is made available throughout the development cycle, so products may not be complete, edited, or finalized, including video post-production editing.

6.5+ Hours of Video Instruction

Take your Python skills to the next level!

Overview
Python Survival Skills LiveLessons helps you to master the intermediate-to-advanced features that can take people months or even years to learn. In this video course Brian Overland teaches you the tools you’ll be expected to know to become a professional Python programmer.

About the Instructor

Brian Overland is an experienced programming professional who has worked as a programmer, manager, and senior technical writer for Microsoft Corporation. He has also published a dozen titles on C, C++, Java, Visual Basic, and now Python. He has done programming work on contract, including an automated irrigation system for Walt Disney World, and he wrote some of the first programs ever written in Microsoft Visual Basic, including a calculator app, a Turing machine emulator, and many other applications.

Skill Level
  • Intermediate

Learn How To
  • Use list comprehension
  • Use set comprehension
  • Format text precisely
  • Implement multi-dimensional lists
  • Utilize decorators
  • Write generators
  • Store data in files efficiently
  • Understand Python classes and objects

Who Should Take This Course
  • Anyone wanting to develop their basic Python skills to the level of a professional programmer
Course Requirements
  • Basic Python programming skills
Lesson Descriptions

Lesson 1: List Comprehension
Another name for list comprehension might be “list compaction.” It enables you to do more with less code. This capability is exemplified in the lesson with a classic programming challenge—writing a palindrome application. Brian shows you how to reduce the code you would normally write by 75% using list comprehension.
Topics 1.1 and 1.2 introduce list comprehension and shows you how it works. Topic 1.3 introduces an optional but powerful feature: conditional inclusion. Finally, Topic 1.4 puts it all together to show you how to use list comprehension in an example that’s much, much shorter than the obvious way to do things.

Lesson 2: Sets and Set Comprehension
Lesson 2 introduces sets. Yes, that’s the concept from math that you are already likely to be familiar with. The concept has great practical value, so much so that it’s a built-in feature of Python, just as legitimate as the concept of a list, string, or number.
What’s really cool about sets is that the Python operations on sets precisely match the mathematical concepts. This includes unions, intersections, subsets, and so on.
But what are the practical uses of sets? You’ll see the usefulness of sets in this lesson, beginning with Topic 2.1, which introduces the concept, along with Topic 2.2, which presents set operations. Topic 2.3 introduces the famous “Sieve” application. Finally, Topic 2.4 shows how to use Python sets to create an incredibly efficient version of this classic programming benchmark.

Lesson 3: Formatting Text Precisely
Formatting text may not seem exciting at first, but it’s vital to the professional programmer. Think about it. How often does a company require reports to be written out nicely, with complex data printed in neat columns in which everything lines up?
You could do everything yourself, but to print those nice columns without help from Python, you’d being doing a great deal of extra work.
Python comes to the rescue with not one but three formatting techniques. Do you have to master all three at once? No. But it’s useful to know about them, in case you want to use the more advanced approaches one day.
Therefore, we start by looking at the simplest approach, the percent operator, in Topics 3.1 and 3.2. This operator is borrowed from the old C language, so you may already know how to use it. Then, in Topics 3.3 and 3.4, we look at the format function and the format method. Given the similarity in names, they ought to be related, and it turns out they are. But they have a similar purpose: to help you print nice-looking output without a lot of work.

Lesson 4: Multi-Dimensional Lists
No programming language is really complete without some way to handle multi-dimensional arrays—or as we call them in Python, multi-dimensional lists. They’re also called matrixes. Matrixes have important uses in game programming, simulations, linear algebra, and many other areas.
But this is one area in which Python throws you some “curveballs.” It’s surprising that this simple task—creating a matrix—is in some ways easier in C, C++, or Java than it is in Python.
If you want, you can always create matrixes with the Numpy package, which we may deal with in a future course. But in this lesson, I’ll show you how to create two-dimensional lists with the core Python language. The problem is that Python matrixes can’t be declared. They have to be built.
Topic 4.1 shows some simple uses for Python 2D lists. Topic 4.2 shows why creating arbitrarily large matrixes in Python is not so easy. But the last two topics, 4.3 and 4.4, come to the rescue to show how to master the problem and even create higher-dimensional lists, if you want.

Lesson 5: Dictionaries
Next is an area of Python that seems truly magical: data dictionaries. Like the lists and set types, the dictionary is a fundamental data type in Python. In this lesson, you’ll see just what dictionaries can do. You can use a dictionary to look up data by providing a “key”—typically a string containing a meaningful name—which is usually much more convenient than using an index number.
This may not sound like much at first, but it opens up a world of possibilities. A data dictionary is like a rudimentary database system. Its basic operation is simple, but you can use it to do many things.
The first two topics, 5.1 and 5.2, show you some practical uses. Topic 5.3 is more practical still, showing you how to use a dictionary to count words and provide a frequency count. Topic 5.4 does the same thing, but it takes the input from a file. While we’re at it, we’ll review the principles of reading and writing text files.
Lest you think this is just busy work, it’s not. The capability to create frequency counts is an important part of computer algorithms such as Huffman encoding. By mastering tasks like these, you’re on your way to becoming a “real programmer” with Python.

Lesson 6: Generators
This lesson and the next get into some very special features of Python that you won’t find in most other languages. They are unique, or nearly unique, to Python. One of these is the “generator” technology.
Perhaps the most basic concept throughout Python is that of an “iterator,” or rather “iterable,” which is the other side of the same coin. An iterator is any sequence that can be stepped through, one item at a time. Lists are iterables, but you can create your own iterable by writing a generator function. This is a really cool technique that gives you tremendous flexibility.
First, we look at the rationale for writing a generator rather than a list in Topic 6.1. Topic 6.2 explains how generators work and what makes them different. Then, in Topics 6.3 and 6.4, we look at some highly practical uses for generators and why you want to put them in your programs.

Lesson 7: Decorators
Few Python topics have a reputation for being more difficult than the subject of decorators. The subject is not so difficult; the problem is that it’s usually not taught very well. If you’ve heard about this subject or found it difficult to learn, well then, rest easy! Because you’ve finally come to the right place.
Python “decoration” is simply a way of adding extra code to functions and then automating the process. In Topic 7.1, Brian talks about why this is such a great and useful tool, especially if you want to profile, or time, your functions. Topic 7.2 presents an example of a simple decorator.
The last two topics, 7.3 and 7.4, complete the process by showing the complete syntax you need to master to understand decorators.
Again, this is not an impossible subject to understand, or even all that difficult. This lesson will give you the understanding you need.

Lesson 8: Classes and Objects, Part I
The final subject of the course is classes and objects. These concepts are so interrelated that they really must be covered together. But this subject—object-oriented programming—is such a big one, that it takes two complete lessons just to give you a good introduction to the topic.
You may well have come across this subject before, when working with languages such as C++, C#, and Java. But it’s more than just using the “dot” syntax. It’s about creating data types that are active, that can be called upon to perform services.
Once again, Python—although it’s mostly easier for beginners—throws some curveballs at you. As you’ll see in Topics 8.1 and 8.2, it requires a little extra work to create a class with simple initialization.
The other side of this coin is that Python classes are incredibly convenient, as they support many “magic methods” that automatically perform important services for you. In Topic 8.3, you’ll see how the __str__ method performs automatic printing of objects. Finally, in Topic 8.4, you’ll see how to make your objects perform any kind of service you want.
In the long run, you’ll find Python classes easy to code and sometimes great time-savers.

Lesson 9: Classes and Objects II, Data Recs
The archetypal model for classes and objects is that of a data record, but a class is much more, of course. Think of a class, or an object, as a “data record plus.” It’s “More than a Data Record!” This lesson starts by showing a typical data record—this one stores information on your company’s employees. Topic 9.1 shows you how to create this type, and Topic 9.2 shows you how to automatically print employee-record objects, in any format you want.

But what good is storing data if you can’t enter it easily? Topic 9.3 illustrates a data-entry routine that will make it a breeze to work with the new Employee class.

Finally, we end this course with Topic 9.4, by showing the best way to store a series of records in a binary file—and then read them out. This section introduces the super-convenient Python “pickle” package, which is by far the easiest way to work with binary data.

About Pearson Video Training
Pearson publishes expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. These professional and personal technology videos feature world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, Pearson IT Certification, Prentice Hall, Sams, and Que Topics include: IT Certification, Network Security, Cisco Technology, Programming, Web Development, Mobile Development, and more. Learn more about Pearson Video training at http://www.informit.com/video.

Table of Contents

  1. Introduction
    1. Python Survival Skills: Introduction 00:03:13
  2. Lesson 1: List Comprehension
    1. Topics 00:01:09
    2. 1.1 Copying Lists 00:03:19
    3. 1.2 Using List Comprehension 00:08:52
    4. 1.3 Conditional Inclusion 00:09:19
    5. 1.4 List Comprehension and Palindromes 00:14:26
    6. Lesson 1 Summary 00:01:00
  3. Lesson 2: Sets and Set Comprehension
    1. Learning objectives 00:01:14
    2. 2.1 Introducing Sets 00:04:52
    3. 2.2 Set Operations 00:06:27
    4. 2.3 The Sieve Application 00:06:14
    5. 2.4 Set Comprehension with Sieves 00:19:31
  4. Lesson 3: Formatting Text Precisely
    1. Topics 00:01:20
    2. 3.1 Simple Formatting Problem 00:10:17
    3. 3.2 Printing a Nice Table with % 00:08:47
    4. 3.3 The format Function 00:09:41
    5. 3.4 The format Method 00:12:56
  5. Lesson 4: Multi-Dimensional Lists
    1. Topics 00:01:23
    2. 4.1 Creating and Using 2D Lists 00:10:01
    3. 4.2 The M x N Problem 00:09:33
    4. 4.3 Solving the Matrix Problem 00:10:16
    5. 4.4 Printing a Multiplication Table 00:09:31
  6. Lesson 5: Dictionaries
    1. Topics 00:01:31
    2. 5.1 Introducing Dictionaries 00:11:31
    3. 5.2 Example: Magic Numbers 00:10:24
    4. 5.3 Counting Words in a String 00:14:18
    5. 5.4 Counting Words in a File 00:12:49
  7. Lesson 6: Generators
    1. Topics 00:01:08
    2. 6.1 The Problem: Is N a Fibonacci? 00:08:16
    3. 6.2 How Generators Work 00:10:44
    4. 6.3 Putting Generators to Use 00:07:14
    5. 6.4 Other Examples of Generator Use 00:10:40
  8. Lesson 7: Decorators
    1. Topics 00:01:05
    2. 7.1 Goal of Decoration: Profiling 00:10:44
    3. 7.2 A Simple Decorator 00:07:11
    4. 7.3 Enhanced Decoration: Arguments 00:07:41
    5. 7.4 Decorator @ Syntax 00:15:37
  9. Lesson 8: Classes and Objects, Part I
    1. Topics 00:01:27
    2. 8.1 Defining Classes: Point Class 00:07:25
    3. 8.2 Adding Initialization (__init__) 00:12:04
    4. 8.3 String Representation (__str__) 00:10:10
    5. 8.4 Other Methods 00:21:42
  10. Lesson 9: Classes and Objects II, Data Recs
    1. Topics 00:01:14
    2. 9.1 An Employee Class, with __init__ 00:13:32
    3. 9.2 Employee Class String Representation 00:10:00
    4. 9.3 Data Entry Routine 00:11:55
    5. 9.4 Reading and Writing Binary Recs 00:18:05
  11. Summary
    1. Python Survival Skills: Summary 00:02:01