
Discusses the relationship between variables and locations of data in computer memory.
Introduces data types, strings, integers, decimals, and Boolean types.
Broadens variable assignments to expressions, focusing on math operations, reuse of variables, order of operations, and the importance of non-reuse of language keywords and built-in names.
Introduces an important means of code reuse, the function, and how a function can be made flexible through parameters. Shows how to execute a Python program from the command line.
Discusses conditional expressions that may be used to provide alternative paths for processing. Describes conditional operators, alphabetical order, compound conditions, ternary expressions,
Introduces key tenets of object orientation and how to define classes. Discusses objects as instances of classes and access of class attributes and methods through the dot operator. It moves on inheriting a parent class and reuse of its attributes and methods. Discusses aliasing of variables assigned objects and its pitfalls. Points out the way to add cleanup code for the moment that an object is deleted.
Shows how to invoke object methods by focusing on string objects and learning how to use string methods to manipulate, inspect, and slice strings. It demonstrates how and when to encode strings to a character set and to decode them.
Continues to work with strings by discussing various ways to format them. Shows string methods helpful in conditional expressions.
Discusses the while loop, which continues until its condition is false or its iterator ends. Discusses iterables, infinite loops, the assignment expression or "walrus" operator, and break, continue, and pass statements.
Introduces regular expression patterns, pattern classes and sequences, and metacharacters. Shows how to simplify patterns through use of raw strings.
Uses the need to import "re.py" into a program as a way to teach about imports generally. Discusses both types of library imports and namespaces.
Shows how to use imported functions from "re.py" with regular expression patterns to test strings and to extract matching data from strings. Shows typical coding to test for matches and obtain matching substrings.
Discusses lists and list methods, tuples as immutable lists, processing of stacks and queues.
Discusses how to take subsets, or slices, of lists and tuples. Introduces the "for loop" as a way to loop efficiently through iterators like lists and tuples, to process an element at a time. Discusses list comprehensions and the built-in range function. Demonstrates multi-dimensional lists and matrixes. Warns against aliasing lists.
Defines the associative array and its implementation in Python as the dictionary. Shows how add, remove or change elements of dictionaries, how to loop through them in a for loop, and how to use important dictionary methods.
Introduces sets, how to create them, use their methods, and then to take the union, intersection, difference, or symmetric difference of two sets. Shows a use of sets to remove duplicate values from lists.
Describes the ways that Python handles continuation of statements on additional lines of necessity or to make code more readable.
Discusses how Python associates constant data to values within an enumeration class.
Discusses the rules for function parameters and arguments for function calls. Emphasizes alignment of arguments to parameters, variable numbers of positional and keyword parameters and arguments, and the use of function objects. It demonstrates how a function can change its own parameter defaults or variables used as arguments in a function call and how to avoid those circumstances. Discusses special parameters, * and /.
Describes how a function may be defined within a function. Discusses the uses of nested functions for cleaner code and for a construct called a closure. Shows how to code a decorator, which is one use of a closure. Introduces "lambda" functions, which are nameless functions.
Tells how to know where variables apply once introduced and when a variable name can be reused. Illustrates Python's use of the LEGB rule for variable scope. Touches on functions, modules, classes, and scopes.
Describes exceptions and how to trap them before they blow up programs. Discusses the "try" statement and associated clauses.
Discusses how to define exception classes and how to raise exceptions.
Shows how to use the built-in "input" command to prompt for user input and store the result. Demonstrates how to check acceptability of responses and permits several attempts in a loop.
Discusses how command line options can be used within programs, then introduces "argparse.py" as a powerful tool for parsing and validating the command line for use within a program.
Discusses how to open text, data files for reading, writing, and appending. Introduces the built-in "open" function that provides a file handle to file for a specified mode and encoding. It shows how methods of the file handle enable reading or writing lines of data and to loop through file reads. It discusses ways to reposition within a file and to overwrite data. Introduces the "with" context manager.
Goes into greater detail about how and when to cast data from one type to another. Describes how Python will replace an integer quotient with a floating point one for better accuracy.
Discusses Python's version of the switch statement, called "match". Demonstrates two formats for it, where the "case" clauses may specify one or more values to match or a "guard clause" to match on a condition.
Discusses class inheritance, multiple inheritance and the Diamond Problem. Demonstrates method overrides and their uses. Demonstrates some built-in method decorators for use within classes.
The course begins with the most basic concepts and features and follows a path through intermediate features of Python. Along the way, you'll learn pitfalls that often end up as interview questions.
The order of topics should allow you to build skills and grow your understanding of programming as you learn the essential tools of Python to accomplish virtually anything.
You’ll learn about data and data types, containers, code structures, object orientation, and important ways to bring data into your programs.
The course covers variable assignment, basic data types and operations on data, functions, conditional statements and expressions, classes and objects, string objects and ways to work with strings. It moves on to exception handling, raising exceptions, lists, dictionaries, and sets, and ways to work with those containers. It covers data input to programs from user interaction, command line options, and from reading and writing files using available file functionality.
Along the way, many other important aspects of the language are covered, such as code libraries and ways to import them, variable scope, regular expressions, enumerations, inner functions and decorators, the differences between mutable and immutable variables, condition testing through the match statement.
Upon completion, you'll be ready for an advanced course!