[proxy] web.archive.org← back | site home | direct (HTTPS) ↗ | proxy home | ◑ dark◐ light

Python Courses & Screencasts – Real Python

Real Python

The Wayback Machine - https://web.archive.org/web/20231227043854/https://realpython.com/courses/

Python Video Courses

Gain practical, real-world Python skills with our library of Python video courses.


Our tutorials are created, curated, and vetted by a community of expert Pythonistas. At Real Python you'll get the trusted resources you need on your path to Python mastery.

With new content published weekly, you'll always find something new to boost your programming skills.

You can mark individual lessons as completed or in-progress and learn at your own comfortable pace. Bookmark interesting lessons and review them later for optimum long-term retention.

Not sure where to start? Check out our "Welcome to Real Python" onboarding course where you’ll get an overview of the features of the Real Python platform.

— Now Available —

Python Basics Exercises: Reading and Writing Files

In this video tutorial, you'll practice transferring data between your Python programs and external software by reading and writing files. Through exercises, you'll master the art of reading and writing information saved in CSV file format, which is extensively used for exchanging tabular data.

How to Get the Current Time in Python

In this video course, you'll be getting the current time in Python. You'll get your hands on a datetime object that represents the current time. You'll see how to format it according to international standards, and you'll even check out how computers represent time.

Advent of Code: Solving Puzzles With Python

Advent of Code is an online advent calendar that shares new programming puzzles each day from December 1 to the 25. In this Code Conversation, you'll learn why solving programming puzzles can be beneficial and how you can get started with Advent of Code using Python.

Python Basics: Modules and Packages

In this Python Basics video course, you'll learn how to build an application by putting related code into separate files called modules. You'll also use the import statement to use modules in another file.

Python Basics Exercises: Numbers and Math

In this Python Basics Exercises course, you'll practice the math that you need for your Python programming journey. This includes integers and floating-point numbers, arithmetic operators, and string formatting for numbers.

Using the bpython Enhanced REPL

In this video course, you'll learn about bpython, an alternative Python REPL that brings code suggestions and many other IDE-like features to the terminal. Once you discover how much bpython can improve your productivity, you'll never want to return to using the vanilla Python REPL again.

Python Basics Exercises: Building Systems With Classes

In this Python Basics Exercises course, you'll review how to work with classes to build complex systems in Python. By practicing composing classes, inheriting from other classes, and overriding class behavior, you'll harness the power of object-oriented programming (OOP).

Using Python's min() and max()

In this video course, you'll learn how to use Python's built-in min() and max() functions to find the smallest and largest values. You'll also learn how to modify their standard behavior by providing a suitable key function. Finally, you'll code a few practical examples of using min() and max().

What's New in Python 3.12

In this video course, you'll explore the new features that Python 3.12 brings to the table. These include improved f-strings, better error messages, changes to CPython internals, additions to static typing, and more.

Python Basics Exercises: Conditional Logic and Control Flow

In this Python Basics Exercises course, you'll review how to use conditional logic to write programs that perform different actions based on different conditions. Paired with functions and loops, conditional logic allows you to write complex programs that can handle many different situations.

Design and Guidance: Object-Oriented Programming in Python

In this video course, you'll learn about the SOLID principles, which are five well-established standards for improving your object-oriented design in Python. By applying these principles, you can create object-oriented code that is more maintainable, extensible, scalable, and testable.

Inheritance and Internals: Object-Oriented Programming in Python

In this video course, you'll learn about the various types of inheritance that you can use to write object-oriented code in Python. These include class inheritance, multilevel inheritance, and multiple inheritance, along with special methods and abstract base classes.

Create a Python Wordle Clone With Rich

In this step-by-step project, you'll build your own Wordle clone with Python. Your game will run in the terminal, and you'll use Rich to ensure your word-guessing app looks good. Learn how to build a command-line application from scratch and then challenge your friends to a wordly competition!

Replacing a String in Python

In this video course, you'll learn how to remove or replace a string or substring. You'll go from the basic string method .replace() all the way up to a multi-layer regex pattern using the sub() function from Python's re module.

Process Images Using the Pillow Library and Python

In this video course, you'll learn how to use the Python Pillow library to deal with images and perform image processing. You'll also explore using NumPy for further processing, including to create animations.

Reversing Strings in Python

In this video course, you'll learn how to reverse strings in Python by using available tools such as reversed() and slicing operations. You'll also learn how to build reversed strings by hand.

Socket Programming in Python Part 1: Handling Connections

In this video course, you'll learn how to build a socket server and client with Python. Along the way, you'll get to know the main functions and methods in Python's socket module, and you'll implement a multi-connection server and client.

Creating Web Maps From Your Data With Python Folium

You'll learn how to create web maps from data using Folium. The package combines Python's data-wrangling strengths with the data-visualization power of the JavaScript library Leaflet. In this video course, you'll create and style a choropleth world map showing the ecological footprint per country.

Filtering Iterables With Python

In this video course, you'll learn how Python's filter() works and how to use it effectively in your programs. You'll also learn how to use list comprehension and generator expressions to replace filter() and make your code more Pythonic.

Jinja Templating

With Jinja, you can build rich templates that power the front end of your web applications. But you can use Jinja without a web framework running in the background. Anytime you want to create text files with programmatic content, Jinja can help you out.

Recursion in Python

A recursive function is one that calls itself. In this video course, you'll see what recursion is, how it works in Python, and under what circumstances you should use it.

Python Basics: Reading and Writing Files

In this video course, you'll learn how to move data back and forth between your Python programs and external software by reading and writing files. You'll practice reading and writing data stored in the CSV file format, one of the most widely supported file formats for transferring tabular data.

Mazes in Python: Build, Visualize, Store, and Solve

In this video course, you'll use object-oriented programming and scalable vector graphics (SVG) to build and visualize your maze. You'll then transform the maze into a traversable weighted graph and solve it with a graph search algorithm in the NetworkX library.

Getting the First Match From a Python List or Iterable

In this video course, you'll learn about the best ways to get the first match from a Python list or iterable. You'll look into two different strategies, for loops and generators, and compare their performance. Then you'll finish up by creating a reusable function for all your first matching needs.

Using k-Nearest Neighbors (kNN) in Python

In this video course, you'll learn all about the k-nearest neighbors (kNN) algorithm in Python, including how to implement kNN from scratch. Once you understand how kNN works, you'll use scikit-learn to facilitate your coding process.

Metaclasses in Python

Metaclasses are an important but mysterious behind-the-scenes mechanism for instantiating classes in Python. In this video course, you'll learn how Python's metaclasses work in object-oriented programming.

Getting the Most Out of the Python Standard REPL

In this video course, you'll learn how to use the Python standard REPL (Read-Eval-Print Loop) to run your code interactively. This tool will allow you to test new ideas, explore and experiment with new tools and libraries, refactor and debug your code, try out examples, and more.

Publishing Python Packages to PyPI

In this video course, you’ll learn how to create a Python package for your project and how to publish it to PyPI, the Python Package Index. Quickly get up to speed on everything from naming your package to configuring it using setup.cfg.

Using Python's assert to Debug and Test Your Code

In this course, you'll learn how to use Python's assert statement to document, debug, and test code in development. You'll learn how assertions might be disabled in production code, so you shouldn't use them to validate data. You'll also learn about a few common pitfalls of assertions in Python.

Python Basics: Installing Packages With pip

Python's standard library includes a whole buffet of useful packages, but sometimes you need to reach for a third-party library. That's where pip comes in handy. In this video course, you'll learn how to pip install packages.

Using OrderedDict in Python

In this video course, you'll learn what Python's OrderedDict is and how to use it in your code. You'll also learn about the main differences between regular dictionaries and ordered dictionaries.

Check if a Python String Contains a Substring

In this video course, you'll learn the best way to check whether a Python string contains a substring. You'll also learn about idiomatic ways to inspect the substring further, match substrings with conditions using regular expressions, and search for substrings in pandas.

YAML: Python's Missing Battery

In this video course, you'll learn about working with YAML in Python. By the end of it, you'll know about the available libraries, their strengths and weaknesses, and the advanced and potentially dangerous features of YAML.

Summing Values the Pythonic Way With sum()

In this video course, you'll learn how to use Python's sum() function to add numeric values together. You'll also learn how to concatenate sequences, such as lists and tuples, using sum().

Documenting Python Projects With Sphinx and Read the Docs

In this video series, you'll create project documentation from scratch using Sphinx, the de facto standard for Python. You'll also hook your code repository up to Read The Docs to automatically build and publish your code documentation.

Manipulating ZIP Files With Python

In this video course, you'll learn how to manipulate ZIP files using Python's zipfile module from the standard library. Through hands-on examples, you'll learn how to read, write, compress, and extract files from your ZIP files quickly.

Writing Clean, Pythonic Code With namedtuple

In this video course, you'll learn what Python's namedtuple is and how to use it in your code. You'll also learn about the main differences between named tuples and other data structures, such as dictionaries, data classes, and typed named tuples.

Using the Terminal on Windows

In this Code Conversation video course, you'll learn how to use the terminal on Windows. You'll navigate the file system with Philipp and Ian and perform common tasks like creating files and folders. If you've never used the terminal before, then this video course will help you get started.

Getters and Setters in Python

In this video course, you'll learn what getter and setter methods are, how Python properties are preferred over getters and setters when dealing with attribute access and mutation, and when to use getter and setter methods instead of properties in Python.

Python Basics: Building Systems With Classes

In this video course, you'll learn how to work with classes to build complex systems in Python. By composing classes, inheriting from other classes, and overriding class behavior, you'll harness the power of object-oriented programming (OOP).

Using the Terminal on Linux

In this Code Conversation video course, you'll learn how to use the terminal on Linux. You'll navigate the file system with Philipp and Geir Arne and perform common tasks like creating files and folders. If you've never used the terminal before, then this video course will help you get started.

Python Basics: Object-Oriented Programming

In this video course, you'll get to know OOP, or object-oriented programming. You'll learn how to create a class, use classes to create new objects, and instantiate classes with attributes.

Using the Terminal on macOS

In this Code Conversation video course, you'll learn how to use the terminal on macOS. You'll navigate the file system with Philipp and Martin and perform common tasks like creating files and folders. If you've never used the terminal before, then this video course will help you get started.

Build Cross-Platform GUI Apps With Kivy

In this video course, you'll learn how to build a cross-platform mobile application with Python and the Kivy GUI framework. You'll discover how to develop an application that can run on your desktop as well as your phone. Then, you'll package your app for Windows, Linux, and macOS.

Python Basics: File System Operations

In this video course, you'll learn how to use the pathlib module to carry out file path operations with Python. These operations include creating, iterating over, searching for, moving, and deleting files and folders.

Context Managers and Python's with Statement

In this video course, you'll learn what the Python with statement is and how to use it with existing context managers. You'll also learn how to create your own context managers.

Python Basics: Dictionaries

One of the most useful data structures in Python is the dictionary. In this video course, you’ll learn what a dictionary is, how dictionaries differ from lists and tuples, and how to define and use dictionaries in your own code.

Using Python's pathlib Module

In this video course, you'll learn how to effectively work with file system paths in Python 3 using the pathlib module in the standard library.

Everyday Project Packaging With pyproject.toml

In this Code Conversation video course, you'll learn how to package your everyday projects with pyproject.toml. Playing on the same team as the import system means you can call your project from anywhere, ensure consistent imports, and have one file that'll work for many build systems.

Refactoring: Prepare Your Code to Get Help

In this Code Conversation video course, you'll explore the steps you can take to get help when you're stuck while coding. You'll investigate how to clean up your code to focus on the question you have. Along the way, you'll learn how to handle errors and use custom exceptions.

Python Basics: Scopes

In this video course, you'll learn what scope is and why it's important to coding functions and loops in Python. You'll also get to know the LEGB rule.

Cool New Features in Python 3.11

In this video course, you'll explore what Python 3.11 brings to the table. You'll learn how Python 3.11 is the fastest and most user-friendly version of CPython yet, and learn about improvements to the typing system and to the asynchronous features of Python.

Python Basics: Numbers and Math

In this video course, you'll learn the math that you'll need for your Python programming journey. This includes integers and floating-point numbers, arithmetic operators, and string formatting for numbers.

Providing Multiple Constructors in Your Python Classes

In this video course, you'll learn how to provide multiple constructors in your Python classes. To this end, you'll learn different techniques, such as checking argument types, using default argument values, writing class methods, and implementing single-dispatch methods.

Python Basics: Strings and String Methods

In Python, collections of text are called strings. In this course, you'll learn about this fundamental data type and the string methods that you can use to manipulate strings. Along the way, you'll learn ways to work with strings of numbers, and how to format strings for printing.

Sneaky REST APIs With Django Ninja

In this video course, you'll learn how to use Django Ninja, a FastAPI-inspired tool for turning Django views in REST API endpoints. With Ninja, you can quickly build API endpoints.

Building Python Project Documentation With MkDocs

In this video course, you'll learn how to build professional documentation for a Python package using MkDocs and mkdocstrings. These tools allow you to generate nice-looking and modern documentation from Markdown files and, more importantly, from your code's docstrings.

Python Basics: Conditional Logic and Control Flow

In this Python Basics video course, you'll learn how to use conditional logic to write programs that perform different actions based on different conditions. Paired with functions and loops, conditional logic allows you to write complex programs that can handle many different situations.

Building Command Line Interfaces With argparse

In this step-by-step Python video course, you'll learn how to take your command line Python scripts to the next level by adding a convenient command line interface that you can write with argparse.

Python Basics: Functions and Loops

In this Python Basics video course, you'll learn how to create user-defined functions that you can execute several times throughout your code. You'll also try your hand at repeating code with for and while loops.

Building a URL Shortener With FastAPI and Python

In this video course, you'll build an app to create and manage shortened URLs. Your Python URL shortener can receive a full target URL and return a shortened URL. You'll also use the automatically created documentation of FastAPI to try out your API endpoints.

Caching in Python With lru_cache

Caching is an essential optimization technique. In this video course, you'll learn how to use Python's @lru_cache decorator to cache the results of your functions using the LRU cache strategy. This is a powerful technique you can use to leverage the power of caching in your implementations.

Exploring Special Function Parameters

In this Code Conversation video course, you'll explore special function parameters that allow for positional-only arguments, keyword-only arguments, or a combination of the two.

Python Basics: Finding and Fixing Code Bugs

In this Python Basics video course, you'll learn how to identify and fix logic errors, or bugs, in your Python code. You'll use the built-in debugging tools in Python's Integrated Development and Learning Environment to practice locating and resolving bugs in an example function.

Using the Python not Operator

In this course, you'll learn how Python's "not" operator works and how to use it in your code. You'll get to know its features and see what kind of programming problems you can solve by using "not" in Python.

SQLite and SQLAlchemy in Python: Moving Your Data Beyond Flat Files

In this video course, you'll learn how to store and retrieve data using Python, SQLite, and SQLAlchemy as well as with flat files. Using SQLite with Python brings with it the additional benefit of accessing data with SQL. By adding SQLAlchemy, you can work with data in terms of objects and methods.

Using the Python and Operator

In this video course, you'll learn how Python's "and" operator works and how to use it in your code. You'll get to know its special features and see what kind of programming problems you can solve by using "and" in Python.

Building a Site Connectivity Checker

In this video course, you'll build a Python site connectivity checker for the command line. While building this app, you'll integrate knowledge related to making HTTP requests with standard-library tools, creating command-line interfaces, and managing concurrency with asyncio and aiohttp.

Python mmap: Doing File I/O With Memory Mapping

In this video course, you'll learn how to use Python's mmap module to improve your code's performance when you're working with files. You'll get a quick overview of the different types of memory before diving into how and why memory mapping with mmap can make your file I/O operations faster.

Combining Data in pandas With concat() and merge()

In this video course, you'll learn two techniques for combining data in pandas: merge() and concat(). Combining Series and DataFrame objects in pandas is a powerful way to gain new insights into your data.

Write and Test a Python Function: Interview Practice

In this interview practice session, you'll tackle creating a function that will double every character within a string. This challenge is typical of what you might encounter in a Python job interview. You'll explore how to add tests to your code.

Data Cleaning With pandas and NumPy

In this video course, you'll learn how to clean up messy data using pandas and NumPy. You'll become equipped to deal with a range of problems, such as missing values, inconsistent formatting, malformed records, and nonsensical outliers.

Exploring Scopes and Closures in Python

In this Code Conversation video course, you'll take a deep dive into how scopes and closures work in Python. To do this, you'll use a debugger to walk through some sample code, and then you'll take a peek under the hood to see how Python holds variables internally.

Using Python Class Constructors

In this video course, you'll learn how class constructors work in Python. You'll also explore Python's instantiation process, which has two main steps: instance creation and instance initialization.

Deploying a Flask Application Using Heroku

In this video course, you'll learn how to create a Python Flask example web application and deploy it using Heroku. You’ll also use Git to track changes to the code, and you’ll configure a deployment workflow with different environments for staging and production.

Testing Your Code With pytest

In this video course, you'll learn how to take your testing to the next level with pytest. You'll cover intermediate and advanced pytest features such as fixtures, marks, parameters, and plugins. With pytest, you can make your test suites fast, effective, and less painful to maintain.

Building a Django User Management System

In this video course, you'll learn how to extend your Django application with a user management system, complete with email sending and third-party authentication.

Exploring Keywords in Python

Python keywords make up the fundamental building blocks of any Python program. In this video course, you'll learn the basic syntax and usage for each of Python's thirty-five keywords so you can write more efficient and readable code.

Python REST APIs With FastAPI

In this course, you'll learn the main concepts of FastAPI and how to use it to quickly create web APIs that implement best practices by default. By the end of it, you will be able to start creating production-ready web APIs.

Using Python's datetime Module

Have you ever wondered about working with dates and times in Python? In this video course, you'll learn all about the built-in Python datetime library. You'll also learn about how to manage time zones and daylight saving time, and how to do accurate arithmetic on dates and times.

Python Basics: Code Your First Python Program

In this video course, you'll write your first Python program. Along the way, you'll learn about errors, declare variables and inspect their values, and try your hand at writing comments.

Sorting Data in Python With pandas

In this video course, you'll learn how to sort data in a pandas DataFrame using the pandas sort functions sort_values() and sort_index(). You'll learn how to sort by one or more columns and by index in ascending or descending order.

Exploring the Fibonacci Sequence With Python

In this video course, you'll explore the Fibonacci sequence in Python, which serves as an invaluable springboard into the world of recursion, and learn how to optimize recursive algorithms in the process.

Starting With Linear Regression in Python

In this video course, you'll get started with linear regression in Python. Linear regression is one of the fundamental statistical and machine learning techniques, and Python is a popular choice for machine learning.

Python any(): Powered Up Boolean Function

If you've ever wondered how to simplify complex conditionals by determining if at least one in a series of conditions is true, then look no further. This video course will teach you all about how to use any() in Python to do just that.

Defining Python Functions With Optional Arguments

In this video course, you'll learn about Python optional arguments and how to define functions with default values. You'll also learn how to create functions that accept any number of arguments using args and kwargs.

Python's len() Function

In this course, you'll learn how and when to use the len() Python function. You'll also learn how to customize your class definitions so that objects of a user-defined class can be used as arguments in len().

Looping With Python enumerate()

Once you learn about for loops in Python, you know that using an index to access items in a sequence isn't very Pythonic. So what do you do when you need that index value? In this course, you'll learn all about Python's built-in enumerate(), where it's used, and how you can emulate its behavior.

Starting With Python IDLE

In this course, you'll learn how to use the development environment included with your Python installation. Python IDLE is a small program that packs a big punch! You'll learn how to use Python IDLE to interact with Python directly, work with Python files, and improve your development workflow.

Working With Pipenv

Pipenv is a packaging tool for Python that solves some common problems associated with the typical workflow using pip, virtualenv, and requirements.txt. In this course, you'll go over what problems Pipenv solves and how to manage your Python dependencies with it.

Raising and Handling Python Exceptions

In this course, you'll learn what an exception is and how it differs from a syntax error. You'll learn about raising exceptions, making assertions, and catching exceptions to change the control flow of your program using the try, except, else, and finally keywords.

Host Your Django Project on Heroku

In this course, you'll learn how to host your Django project in the cloud for free and with little hassle. You'll use Heroku, which takes the burden of infrastructure management off your shoulders.

Binary, Bytes, and Bitwise Operators in Python

In this course, you'll learn how to use Python's bitwise operators to manipulate individual bits of data at the most granular level. With the help of hands-on examples, you'll see how you can apply bitmasks and overload bitwise operators to control binary data in your code.

Data Visualization Interfaces in Python With Dash

In this course, you'll learn how to build a dashboard using Python and Dash. Dash is a framework for building data visualization interfaces. It helps data scientists build fully interactive web applications quickly.

Building a Neural Network & Making Predictions With Python AI

In this step-by-step course, you'll build a neural network from scratch as an introduction to the world of artificial intelligence (AI) in Python. You'll learn how to train your neural network and make accurate predictions based on a given dataset.

Building Lists With Python's .append()

In this step-by-step course, you'll learn how Python's .append() works and how to use it for adding items to your list in place. You'll also learn how to code your own stacks and queues using .append() and .pop().

Using plt.scatter() to Visualize Data in Python

In this course, you'll learn how to create scatter plots in Python, which are a key part of many data visualization applications. You'll get an introduction to plt.scatter(), a versatile function in the Matplotlib module for creating scatter plots.

Reading Input and Writing Output in Python

In this introductory Python course, you'll learn how to take user input from the keyboard with the built-in function input() and how to display output to the console with the built-in function print().

Writing Idiomatic Python

What are the programming idioms unique to Python? This course is a short overview for people coming from other languages and an introduction for beginners to the idiomatic practices within Python. You'll cover truth values, looping, DRY principles, and the Zen of Python.

Python Assignment Expressions and Using the Walrus Operator

In this course, you'll learn about assignment expressions and the walrus operator. The biggest change in Python 3.8 was the inclusion of the := operator, which you can use to assign variables in the middle of expressions. You'll see several examples of how to take advantage of this new feature.

Cool New Features in Python 3.10

In this course, you'll explore some of the coolest and most useful features in Python 3.10. You'll appreciate more user-friendly error messages, learn about how you can handle complicated data structures with structural pattern matching, and explore new enhancements to Python's type system.

Rock, Paper, Scissors With Python: A Command Line Game

In this course, you'll learn to program rock paper scissors in Python from scratch. You'll learn how to take in user input, make the computer choose a random action, determine a winner, and split your code into functions.

Pass by Reference in Python: Best Practices

In this course, you'll explore the concept of passing by reference and learn how it relates to Python's own system for handling function arguments. You'll look at several use cases for passing by reference and learn some best practices for implementing pass-by-reference constructs in Python.

Using Data Classes in Python

Data classes are one of the new features introduced in Python 3.7. When using data classes, you don't have to write boilerplate code to get proper initialization, representation, and comparisons for your objects.

Graph Your Data With Python and ggplot

In this course, you'll learn how to use ggplot in Python to build data visualizations with plotnine. You'll discover what a grammar of graphics is and how it can help you create plots in a very concise and consistent way.

Exploring the Python math Module

In this step-by-step course, you’ll learn all about Python’s math module for higher-level mathematical functions. Whether you’re working on a scientific project, a financial application, or any other type of programming endeavor, you just can’t escape the need for math!

Reading and Writing Files With pandas

In this course, you'll learn about the pandas IO tools API and how you can use it to read and write files. You'll use the pandas read_csv() function to work with CSV files. You'll also cover similar methods for efficiently working with Excel, CSV, JSON, HTML, SQL, pickle, and big data files.

Using the Python return Statement Effectively

In this step-by-step course, you'll learn how to use the Python return statement when writing functions. Additionally, you'll cover some good programming practices related to the use of return. With this knowledge, you'll be able to write readable, robust, and maintainable functions in Python.

Using sleep() to Code a Python Uptime Bot

In this course, you'll learn how to add time delays to your Python programs. You'll use the built-in time module to add Python sleep() calls to your code. To practice, you'll use time.sleep() when making an uptime bot that checks whether a website is still live.

The pandas DataFrame: Working With Data Efficiently

In this course, you'll get started with pandas DataFrames, which are powerful and widely used two-dimensional data structures. You'll learn how to perform basic operations with data, handle missing values, work with time-series data, and visualize data from a pandas DataFrame.

Speech Recognition With Python

In this course, you'll cover the fundamentals of speech recognition with Python. You'll learn which speech recognition library gives the best results and build a full-featured "Guess The Word" game with it.

The Square Root Function in Python

In this quick and practical course, you'll learn what a square root is and how to calculate one in Python. You'll even see how you can use the Python square root function to solve a real-world problem.

Defining and Calling Python Functions

In this course, you'll learn how to define and call your own Python function. You'll also learn about passing data to your function and returning data from your function back to its calling environment.

Python Inner Functions

In this step-by-step course, you'll learn what inner functions are in Python, how to define them, and what their main use cases are.

Python vs JavaScript for Python Developers

Python and JavaScript are two of the most popular programming languages in the world. In this course, you'll take a deep dive into the JavaScript ecosystem by comparing Python vs JavaScript. You'll learn the jargon, language history, and best practices from a Pythonista's perspective.

Using pandas to Make a Gradebook in Python

With this course and Python project, you'll build a script to calculate grades for a class using pandas. The script will quickly and accurately calculate grades from a variety of data sources. You'll see examples of loading, merging, and saving data with pandas, as well as plotting some summary statistics.

Python Basics: Setting Up Python

The first step to getting started with Python is to set it up on your machine. In this course, you'll learn how to download Python for Windows, macOS, and Ubuntu Linux and how to open Python's Integrated Development and Learning Environment, IDLE.

Explore Your Dataset With pandas

In this step-by-step course, you'll learn how to start exploring a dataset with pandas and Python. You'll learn how to access specific rows and columns to answer questions about your data. You'll also see how to handle missing values and prepare to visualize your dataset in a Jupyter Notebook.

How to Set Up a Django Project

In this course, you'll learn the necessary steps you'll need to take to set up a new Django project. You'll learn the basic setup for any new Django project that needs to happen before programming the specific functionality of your project.

Using the Python or Operator

In this step-by-step course, you'll learn about how the Python or operator works and how to use it. You'll get to know its special features and see what kind of programming problems you can solve by using or in Python.

Stacks and Queues: Selecting the Ideal Data Structure

In this course, you'll learn about three of Python's data structures: stacks, queue and priority queues. You'll look at multiple types and classes for all of these and learn which implementations are best for your specific use cases.

Simplify Python GUI Development With PySimpleGUI

In this step-by-step course, you'll learn how to create a cross-platform graphical user interface (GUI) using Python and PySimpleGUI. A graphical user interface is an application that has buttons, windows, and lots of other elements that the user can use to interact with your application.

Python's map() Function: Transforming Iterables

In this step-by-step course, you'll learn how Python's map() works and how to use it effectively in your programs. You'll also learn how to use list comprehension and generator expressions to replace map() in a Pythonic and efficient way.

Learn Text Classification With Python and Keras

In this course, you’ll learn about Python text classification with Keras, working your way from a bag-of-words model with logistic regression to more advanced methods, such as convolutional neural networks. You’ll also see how you can use pretrained word embeddings and hyperparameter optimization.

Python vs Java: Object Oriented Programming

In this step-by-step course, you'll learn about the practical differences in Python vs Java for object-oriented programming. By the end, you'll be able to apply your knowledge to Python, understand how to reinterpret your understanding of Java objects to Python, and use objects in a Pythonic way.

Understanding Python List Comprehensions

Python list comprehensions make it easy to create lists while performing sophisticated filtering, mapping, and conditional logic on their members. In this course, you'll learn when to use a list comprehension in Python and how to create them effectively.

Records and Sets: Selecting the Ideal Data Structure

In this course, you'll learn about two of Python's data structures: records and sets. You'll look at multiple types and classes for both of these and learn which implementations are best for your specific use cases.

Python Booleans: Leveraging the Values of Truth

In this course, you'll learn about the built-in Python Boolean data type, which is used to represent the truth value of an expression. You'll see how to use Booleans to compare values, check for identity and membership, and control the flow of your programs with conditionals.

Django View Authorization: Restricting Access

This course covers how to restrict your web pages to users with different roles through Django view authorization. You'll learn about HttpRequest.user objects, decorators that authenticate views, and ways to notify your users with the Django messages framework.

Navigating Namespaces and Scope in Python

In this course, you'll learn about Python namespaces, the structures used to store and organize the symbolic names created during execution of a Python program. You'll learn when namespaces are created, how they are implemented, and how they define variable scope.

Creating PyQt Layouts for GUI Applications

In this step-by-step course, you’ll learn how to use PyQt layouts to arrange and manage the graphical components on your GUI applications. With the help of PyQt's layout managers, you'll be able to create polished and professional GUIs with minimal effort.

Python Modulo: Using the % Operator

In this course, you'll learn about the Python modulo operator (%). You'll look at the mathematical concepts behind the modulo operation and how the modulo operator is used with Python's numeric types. You'll also see ways to use the modulo operator in your own code.

Plot With pandas: Python Data Visualization Basics

In this course, you'll get to know the basic plotting possibilities that Python provides in the popular data analysis library pandas. You'll learn about the different kinds of plots that pandas offers, how to use them for data exploration, and which types of plots are best for certain use cases.

Evaluate Expressions Dynamically With Python eval()

In this step-by-step course, you'll learn how Python's eval() works and how to use it effectively in your programs. Additionally, you'll learn how to minimize the security risks associated to the use of eval().

Introduction to Sorting Algorithms in Python

In this course, you'll learn all about five different sorting algorithms in Python from both a theoretical and a practical standpoint. You'll also learn several related and important concepts, including Big O notation and recursion.

Managing Python Dependencies

Get up to speed with Python dependency management quickly and go from “writing scripts” to “building applications” with this complete course.

Building HTTP APIs With Django REST Framework

This course will get you ready to build HTTP APIs with Django REST Framework. The Django REST framework (DRF) is a toolkit built on top of the Django web framework that reduces the amount of code you need to write to create REST interfaces.

Django Admin Customization

In this course, you'll learn how to customize Django's admin with Python. You'll use AdminModel objects to add display columns, calculate values, link to referring objects, and search and filter results. You'll also use template overriding to gain full control over the admin's HTML.

Serializing Objects With the Python pickle Module

In this course, you'll learn how you can use the Python pickle module to convert your objects into a stream of bytes that can be saved to a disk or sent over a network. You'll also learn the security implications of using this process on objects from an untrusted source.

Python Turtle for Beginners

In this step-by-step course, you'll learn the basics of Python programming with the help of a simple and interactive Python library called turtle. If you're a beginner to Python, then this course will definitely help you on your journey as you take your first steps into the world of programming.

Speed Up Python With Concurrency

Learn what concurrency means in Python and why you might want to use it. You'll see a simple, non-concurrent approach and then look into why you'd want threading, asyncio, or multiprocessing.

How Python Manages Memory

Get ready for a deep dive into the internals of Python to understand how it handles memory management. By the end of this course, you’ll know more about low-level computing, understand how Python abstracts lower-level operations, and find out about Python’s internal memory management algorithms.

Formatting Python Strings

In this course, you'll see two items to add to your Python string formatting toolkit. You'll learn about Python's string format method and the formatted string literal, or f-string. You'll learn about these formatting techniques in detail and add them to your Python string formatting toolkit.

Regular Expressions and Building Regexes in Python

In this course, you'll learn how to perform more complex string pattern matching using regular expressions, or regexes, in Python. You'll also explore more advanced regex tools and techniques that are available in Python.

Handling Missing Keys With the Python defaultdict Type

In this step-by-step course, you'll learn how the Python defaultdict type works and how to use it for handling missing keys when you're working with dictionaries. You'll also learn how to use a defaultdict to solve problems like grouping or counting the items in a sequence or collection.

Simulating Real-World Processes in Python With SimPy

In this step-by-step course, you'll see how you can use the SimPy package to model real-world processes with a high potential for congestion. You'll create an algorithm to approximate a complex system, and then you'll design and run a simulation of that system in Python.

Creating a Binary Search in Python

Binary search is a classic algorithm in computer science. In this step-by-step course, you'll learn how to implement this algorithm in Python. You'll learn how to leverage existing libraries as well as craft your own binary search Python implementation.

Getting Started With MicroPython

Are you interested in the Internet of Things, home automation, and connected devices? If so, then you're in luck! In this course, you'll learn about MicroPython and the world of electronics hardware. You'll set up your board, write your code, and deploy a MicroPython project to your own device.

Web Scraping With Beautiful Soup and Python

In this course, you'll walk through the main steps of the web scraping process. You'll learn how to write a script that uses Python's requests library to scrape data from a website. You'll also use Beautiful Soup to extract the specific pieces of information that you're interested in.

Cool New Features in Python 3.9

In this course, you'll explore some of the coolest and most useful features in the newly released Python 3.9. You'll learn how Python 3.9 makes it easier to work with time zones, dictionaries, decorators, and several other techniques that will make your code cleaner and more efficient.

Using Google Login With Flask

In this course, you'll create a Flask application that lets users sign in using their Google login. You'll learn about OAuth 2 and OpenID Connect and also find out how to implement some code to handle user session management.

Working With Linked Lists in Python

In this course, you'll learn what linked lists are and when to use them, such as when you want to implement queues, stacks, or graphs. You'll also learn how to use collections.deque to improve the performance of your linked lists and how to implement linked lists in your own projects.

Command Line Interfaces in Python

Command line arguments are the key to converting your programs into useful and enticing tools that are ready to be used in the terminal of your operating system. In this course, you'll learn their origins, standards, and basics, and how to implement them in your program.

Exploring HTTPS and Cryptography in Python

In this course, you'll gain a working knowledge of the various factors that combine to keep communications over the Internet safe. You'll see concrete examples of how to keep information secure and use cryptography to build your own Python HTTPS application.

Editing Excel Spreadsheets in Python With openpyxl

In this course, you'll learn how to handle spreadsheets in Python using the openpyxl package. You'll learn how to manipulate Excel spreadsheets, extract information from spreadsheets, create simple or more complex spreadsheets, including adding styles, charts, and so on.

Django Redirects

In this course, you'll learn everything you need to know about HTTP redirects in Django. All the way from the low-level details of the HTTP protocol to the high-level way of dealing with them in Django.

Office Hours Archive

The Real Python Office Hours is a weekly hangout where members of Real Python get the chance to interact with each other as well as Real Python authors and video course instructors. Join us live on Wednesday mornings!

Identify Invalid Python Syntax

In this video course, you'll see common examples of invalid syntax in Python and learn how to resolve the issue. If you've ever received a SyntaxError when trying to run your Python code, then this is the guide for you!

Practical Recipes for Working With Files in Python

In this course, you'll learn how you can work with files in Python by using built-in modules to perform practical tasks that involve groups of files, like renaming them, moving them around, archiving them, and getting their metadata.

Python's None: Null in Python

In this course, you'll learn about the NoneType object None, which acts as the null in Python. This object represents emptiness, and you can use it to mark default parameters and even show when you have no result. None is a tool for doing everything with nothing!

Mastering Python's Built-in time Module

In this course, you'll learn how to use the Python time module to represent dates and times in your application, manage code execution, and measure performance.

Pointers and Objects in Python

In this video course, you'll learn about Python's object model and see why pointers don't really exist in Python. You'll also cover ways to simulate pointers in Python without managing memory.

Unicode in Python: Working With Character Encodings

In this course, you'll get a Python-centric introduction to character encodings and Unicode. Handling character encodings and numbering systems can at times seem painful and complicated, but this guide is here to help with easy-to-follow Python examples.

Creating a Discord Bot in Python

In this course, you'll learn how to make a Discord bot in Python and interact with several APIs. You'll learn how to handle events, accept commands, validate and verify input, and all the basics that can help you create useful and exciting automations!

Python Generators 101

In this step-by-step course, you'll learn about generators and yielding in Python. You'll create generator functions and generator expressions using multiple Python yield statements. You'll also learn how to build data pipelines that take advantage of these Pythonic tools.

Getting the Most Out of a Python Traceback

In this step-by-step course, you'll learn how to read and understand the information you can get from a Python stack traceback. You'll walk through several examples and see some of the most common tracebacks in Python.

Parallel Iteration With Python's zip() Function

In this course, you'll learn how to use the Python zip() function to solve common programming problems. You'll learn how to traverse multiple iterables in parallel and create dictionaries with just a few lines of code.

A Beginner's Guide to pip

What is pip? In this beginner-friendly course, you'll learn how to use pip, the standard package manager for Python, so that you can install and manage additional packages that are not part of the Python standard library.

Convert a Python String to int

There are several ways to represent integers in Python. In this quick and practical course, you'll learn how you can store integers using int and str as well as how you can convert a Python string to an int and vice versa.

Improve Your Tests With the Python Mock Object Library

In this course, you'll learn how to use the Python mock object library, unittest.mock, to create and use mock objects to improve your tests. Obstacles like complex logic and unpredictable dependencies make writing valuable tests difficult, but unittest.mock can help you overcome these obstacles.

The Python print() Function: Go Beyond the Basics

In this step-by-step course, you'll learn about the print() function in Python and discover some of its lesser-known features. Avoid common mistakes, take your "hello world" to the next level, and know when to use a better alternative.

Structuring a Python Application

This course is a reference guide to common Python application layouts and project structures for command-line applications, web applications, and more.

Python Coding Interviews: Tips & Best Practices

In this step-by-step course, you'll learn how to take your Python coding interview skills to the next level and use Python's built-in functions and modules to solve problems faster and more easily.

Inheritance and Composition: A Python OOP Guide

In this step-by-step course, you'll learn about inheritance and composition in Python. You'll improve your object-oriented programming (OOP) skills by understanding how to use inheritance and composition and how to leverage them in their design.

Arduino With Python: How to Get Started

In this step-by-step course, you'll discover how to use Arduino microcontrollers with Python to develop your own electronic projects. You'll learn how to set up circuits and write applications with the Firmata protocol. You'll control Arduino inputs and outputs and integrate the board with higher-level apps.

Comparing Python Objects the Right Way: "is" vs "=="

In this quick and practical course, you'll learn when to use the Python is, is not, == and != operators. You'll see what these comparison operators do under the hood, dive into some quirks of object identity and interning, and define a custom class.

Using NumPy's np.arange() Effectively

In this step-by-step course, you'll learn how to use the NumPy arange() function, which is one of the routines for array creation based on numerical ranges. np.arange() returns arrays with evenly spaced values

Make a 2D Side-Scroller Game With PyGame

In this step-by-step course, you'll learn how to use PyGame. This library allows you to create games and rich multimedia programs in Python. You'll learn how to draw items on your screen, implement collision detection, handle user input, and much more!

Defining Main Functions in Python

In this step-by-step course, you'll learn how Python main functions are used and some best practices to organize your code so it can be executed as a script and imported from another module.

How to Implement a Python Stack

In this course, you'll learn how to implement a Python stack. You'll see how to recognize when a stack is a good choice for data structures, how to decide which implementation is best for a program, and what extra considerations to make about stacks in a threading or multiprocessing environment.

How to Work With a PDF in Python

In this step-by-step course, you'll learn how to work with a PDF in Python. You'll see how to extract metadata from preexisting PDFs. You'll also learn how to merge, split, watermark, and rotate pages in PDFs using Python and PyPDF2.

Finding the Perfect Python Code Editor

Find your perfect Python development setup with this review of Python IDEs and code editors. Writing Python using IDLE or the Python REPL is great for simple things, but not ideal for larger programming projects. With this course you'll get an overview of the most common Python coding environments to help you make an informed decision.

Playing and Recording Sound in Python

In this course, you'll learn about libraries that can be used for playing and recording sound in Python, such as PyAudio and python-sounddevice. You'll also see code snippets for playing and recording sound files and arrays, as well as for converting between different sound file formats.

Sets in Python

In this course, you'll learn how to work with Python's set data type. You'll see how to define set objects in Python and discover the operations that they support. By the end of this course, you'll have a good feel for when a set is an appropriate choice in your own programs.

Python Modules and Packages: An Introduction

In this course, you'll explore Python modules and Python packages, two mechanisms that facilitate modular programming. See how to write and import modules so you can optimize the structure of your own programs and make them more maintainable.

Basic Data Types in Python

In this course, you'll learn the basic data types that are built into Python, like numbers, strings, and Booleans. You'll also get an overview of Python's built-in functions.

Python args and kwargs: Demystified

In this step-by-step course, you'll learn how to use args and kwargs in Python to add more flexibility to your functions. You'll also take a closer look at the single and double-asterisk unpacking operators, which you can use to unpack any iterable object in Python.

Sorting Data With Python

In this step-by-step course, you’ll learn how to sort in Python. You'll know how to sort various types of data in different data structures, customize the order, and work with two different ways of sorting in Python.

Python Dictionary Iteration: Advanced Tips & Tricks

In this step-by-step course, you'll take a deep dive into how to iterate through a dictionary in Python. Dictionaries are a fundamental data structure, and you'll be able to solve a wide variety of programming problems by iterating through them.

Variables in Python

Learn how every item of data in a Python program can be described by the abstract term "object," and how to manipulate objects using symbolic names called "variables."

Python, Boto3, and AWS S3: Demystified

Get started working with Python, Boto3, and AWS S3. Learn how to create objects, upload them to S3, download their contents, and change their attributes directly from your script, all while avoiding common pitfalls.

Python KeyError Exceptions and How to Handle Them

In this course, you'll learn how to handle Python KeyError exceptions. They are often caused by a bad key lookup in a dictionary, but there are a few other situations when a KeyError can be raised as well. Knowing how to handle these exceptions is essential to writing good Python code.

Threading in Python

In this intermediate-level course, you'll learn how to use threading in your Python programs. You'll see how to create threads, how to coordinate and synchronize them, and how to handle common problems that arise in threading.

Thinking Recursively in Python

In this course, you'll learn how to work with recursion in your Python programs by mastering concepts such as recursive functions and recursive data structures.

Cool New Features in Python 3.8

What does Python 3.8 bring to the table? Learn about some of the biggest changes and see you how you can best make use of them.

Python Type Checking

In this course, you'll look at Python type checking. Traditionally, types have been handled by the Python interpreter in a flexible but implicit way. Recent versions of Python allow you to specify explicit type hints that can be used by different tools to help you develop your code more efficiently.

Python Plotting With Matplotlib

In this beginner-friendly course, you'll learn about plotting in Python with matplotlib by looking at the theory and following along with practical examples.

The Python range() Function

In this step-by-step course, you'll master the Python range() function, learn how its implementation differs in Python 3 vs 2, and see how you can use it to write faster and more Pythonic code.

Get Started With Django: Build a Portfolio App

In this course, you'll learn the basics of creating powerful web applications with Django, a Python web framework. You'll build a portfolio website to showcase your web development projects, complete with a fully functioning blog.

Strings and Character Data in Python

In this course, you'll learn how to use Python's rich set of operators, functions, and methods for working with strings. You'll learn how to access and extract portions of strings, and also become familiar with the methods that are available to manipulate and modify string data in Python 3.

Thonny: The Beginner-Friendly Python Editor

In this course, you’ll learn all about Thonny, a free Python Integrated Development Environment (IDE) that was especially designed with the beginner Pythonista in mind. It has a built-in debugger and allows you to do step-through expression evaluation.

Python Debugging With pdb

In this hands-on course, you'll learn the basics of using pdb, Python's interactive source code debugger. pdb is a great tool for tracking down hard-to-find bugs, and it allows you to fix faulty code more quickly.

Absolute vs Relative Imports in Python

If you’ve worked on a Python project that has more than one file, chances are you’ve had to use an import statement before. In this course, you’ll not only cover the pros and cons of absolute and relative imports but also learn about the best practices for writing import statements.

Lists and Tuples in Python

In this course, you'll cover the important characteristics of lists and tuples in Python 3. You'll learn how to define them and how to manipulate them. When you're finished, you'll have a good feel for when and how to use these object types in a Python program.

How to Use Python Lambda Functions

In this step-by-step course, you'll learn about Python lambda functions. You'll see how they compare with regular functions and how you can use them in accordance with best practices.

Traditional Face Detection With Python

In this course on face detection with Python, you'll learn about a historically important algorithm for object detection that can be successfully applied to finding the location of a human face within an image.

11 Beginner Tips for Learning Python

In this course, you'll see several learning strategies and tips that will help you jumpstart your journey towards becoming a rockstar Python programmer!

Dictionaries in Python

In this course on Python dictionaries, you'll cover the basic characteristics of dictionaries and learn how to access and manage dictionary data. Once you've finished this course, you'll have a good sense of when a dictionary is the appropriate data type to use and know how to use it.

Logging in Python

In this video course, you'll learn why and how to get started with Python's powerful logging module to meet the needs of beginners and enterprise teams alike.

How to Write Pythonic Loops

In this course, you'll see how you can make your loops more Pythonic if you're coming to Python from a C-style language. You'll learn how you can get the most out of using range(), xrange(), and enumerate(). You'll also see how you can avoid having to keep track of loop indexes manually.

Reading and Writing Files in Python

In this course, you'll learn about reading and writing files in Python. You'll cover everything from what a file is made up of to which libraries can help you along that way. You'll also take a look at some basic scenarios of file usage as well as some advanced techniques.

Functional Programming in Python

In this course, you'll learn how to approach functional programming in Python. You'll cover what functional programming is, how you can use immutable data structures to represent your data, as well as how to use filter(), map(), and reduce().

Generating Random Data in Python

In this course, you'll cover several options for generating random data in Python, and then build up to a comparison of each in terms of its level of security, versatility, purpose, and speed.

How to Publish Your Own Python Package to PyPI

Learn how to create a Python package for your project and how to publish it to PyPI, the Python Package Repository with this step-by-step course. Quickly get up to speed on everything from naming your package to configuring it using setup.py.

Continuous Integration With Python

In this course, you'll learn the core concepts behind Continuous Integration (CI) and why they are essential for modern software engineering teams. Find out how to how set up Continuous Integration for your Python project to automatically create environments, install dependencies, and run tests.

Installing Python on Windows, macOS, and Linux

To get started working with Python, you'll need to have access to the Python interpreter. There are several common ways to accomplish this and in this course, you will learn how to install the latest version of Python on your computer.

Writing Cleaner Python Code With PyLint

In this video series you'll see how to install and set up the PyLint code linter tool. You'll learn why you should use code linters like PyLint, Flake8, PyFlakes, or other static analysis tools—and how they can help you write cleaner and more Pythonic code.

Conditional Statements in Python (if/elif/else)

In this step-by-step course you'll learn how to work with conditional ("if") statements in Python. Master if-statements step-by-step and see how to write complex decision making code in your programs.

Sending Emails With Python

In this course, you'll learn how to send emails using Python. Find out how to send plain-text and HTML messages, add files as attachments, and send personalized emails to multiple people. Later on you'll build a CSV-powered email sending script from scratch.

Immutability in Python

In Python, immutable vs mutable data types and objects types can cause some confusion—and weird bugs. With this course you'll see what the difference between mutable and immutable data types is in Python, and how you can use it to your advantage in your own programs.

Hands-On Python 3 Concurrency With the asyncio Module

Learn how to speed up your Python 3 programs using concurrency and the asyncio module in the standard library. See step-by-step how to leverage concurrency and parallelism in your own programs, all the way to building a complete HTTP downloader example app using asyncio and aiohttp.

Python String Formatting Tips & Best Practices

Learn the four main approaches to string formatting in Python, as well as their strengths and weaknesses. You'll also get a simple rule of thumb for how to pick the best general purpose string formatting approach in your own programs.

Running Python Scripts

This step-by-step course will guide you through a series of ways to run Python scripts, depending on your environment, platform, needs, and skills as a programmer.

Working With JSON Data in Python

Learn how to work with Python's built-in json module to serialize the data in your programs into JSON format. Then, you'll deserialize some JSON from an online API and convert it into Python objects.

Django Migrations 101

With this course you’ll get comfortable with Django migrations and learn how to create database tables without writing any SQL, how to automatically modify your database after you changed your models, and how to revert changes made to your database.

Python Decorators 101

In this course on Python decorators, you'll learn what they are and how to create and use them. Decorators provide a simple syntax for calling higher-order functions in Python. By definition, a decorator is a function that takes another function and extends the behavior of the latter function without explicitly modifying it.

Writing Comments in Python

Learn how to write Python comments that are clean, concise, and useful. Quickly get up to speed on what the best practices are, which types of comments it's best to avoid, and how you can practice writing cleaner comments.

Making HTTP Requests With Python

The requests library is the de facto standard for making HTTP requests in Python. It abstracts the complexities of making requests behind a beautiful, simple API so that you can focus on interacting with services and consuming data in your application. This course shows you how to work effectively with requests, from start to finish.

Writing Beautiful Pythonic Code With PEP 8

Learn how to write high-quality, readable code by using the Python style guidelines laid out in PEP 8. Following these guidelines helps you make a great impression when sharing your work with potential employers and collaborators. This course outlines the key guidelines laid out in PEP 8. It's aimed at beginner to intermediate programmers.

Python 3's F-Strings: An Improved String Formatting Syntax

As of Python 3.6, f-strings are a great new way to format strings. Not only are they more readable, more concise, and less prone to error than other ways of formatting, but they are also faster! By the end of this course, you'll know how and why to start using f-strings today.

Idiomatic Python 101

Python Idioms for people coming from other languages and how to improve your idiomatic practices with Python. We will cover things to do with string concatenation, dictionary look ups, dealing with Python scripts and encoding.

Test-Driven Development With pytest

In this hands-on course, you’ll see how to create Python unit tests, execute them, and find the bugs before your users do. You’ll learn about the tools available to write and execute tests, check your application’s performance, and even look for security issues.

Pandas DataFrames 101

Learn the basics of working with the Data Frame data structure in Pandas. We will touch on how to create new columns from existing data, delete unneeded data, how to import data from a CSV file, and more.

Emulating switch/case Statements in Python

Python doesn't have switch/case statements so it's often necessary to write long if/elif/else chains as a workaround. Here's a little trick you can use to emulate switch/case statements in Python using dictionaries and first-class functions.

Migrating Applications From Python 2 to Python 3

In this course we discuss the process of converting a Python 2 application to Python 3. We go through the entire process of identifying incompatible differences as well as rectifying them. As well as a few migration strategies one might take to convert a Python 2 application to Python 3.

Splitting, Concatenating, and Joining Strings in Python

In this course you'll some of the most fundamental string operations: splitting, concatenating, and joining. Not only will you learn how to use these tools, but you’ll walk away with a deeper understanding of how they work under the hood in Python.

Mastering While Loops

Master indefinite iteration using the Python "while" loop. You’ll be able to construct basic and complex while loops, interrupt loop execution with break and continue, use the else clause with a while loop, and deal with infinite loops.

Using List Comprehensions Effectively

This short course breaks down Python list comprehensions for you step by step. See how Python's comprehensions can be transformed from and to equivalent "for"-loops so you'll know exactly what's going on behind the scenes.

Reading and Writing CSV Files

This short course covers how to read and write data to CSV files using Python's built in csv module and the pandas library. You'll learn how to handle standard and non-standard data such as CSV files without headers, or files containing delimeters in the data.

Using Jupyter Notebooks

In this step-by-step course, you learn how to get started with the Jupyter Notebook, an open source web application that you can use to create and share documents that contain live code, equations, visualizations, and text.

For Loops in Python (Definite Iteration)

Learn all about how to perform definite iteration with Python "for" loops. You’ll see how other programming languages implement definite iteration, learn about iterables and iterators, and tie it all together to learn about Python’s for loop.

Working With Python Virtual Environments

This course demonstrates how Python's virtual environments work as a "sandbox" and you get a quick walkthrough on how to set up a new environment (or virtualenv, as they're called for short) and how to install third-party packages into it using the pip command.

Welcome to Real Python!

In this series of videos you'll get an overview of the features of the Real Python platform, so you can make the most of your membership. Follow along and get tips on: How to find the most valuable learning resources for your current skill level, how to meet and interact with other students and the RP Team, how to learn effectively, and more.