About Course
Python Unlocked — Complete All-in-One Coding Guide is my step-by-step introduction to a subject that can seem more complicated than it needs to be. I focus on helping you turn technical ideas into a clear working process that you can reproduce on your own. Along the way, I explain not only what to do, but also what to notice, what questions to ask, and how to judge whether your approach is working.
We will work with short demonstrations, focused exercises, debugging habits, and small implementation tasks. I will often return to earlier ideas from a new angle, because real understanding usually grows through comparison and repetition. Keep your own notes as you go; they will become a useful record of how your thinking develops.
Practice and Progress
Use the course actively. Pause demonstrations, compare your work with the example, and make small changes to see what they affect. I will provide the route, but the strongest learning happens when you make decisions yourself and can explain the reason behind them.
Your Learning Roadmap
- Includes many practice problems as well as self-paced problems
- Recognize common errors and use a systematic process to correct them
- Read examples critically and adapt them instead of copying them blindly
- Turn a course example into a small project of your own
- Use documentation and feedback to continue learning independently
- Break technical problems into smaller steps that are easier to test
I also encourage you to keep a small record of your decisions while studying Python Unlocked. Note what you tried, what you expected, and what actually happened. Over time, these notes make your progress visible and help you avoid repeating the same unhelpful pattern.
As you work through Python Unlocked, notice which steps make you hesitate. Those moments are useful signals. Mark them, return to the related example, and write down the question in your own words. This simple habit turns confusion into a practical agenda for the next practice session.
A Good Starting Point
I made these lessons for learners building practical technical skills, including beginners and professionals filling gaps in their workflow. You do not need to arrive with a perfect background or a finished project. Curiosity, a willingness to practice, and enough time to reflect on your work are the most useful starting points.
What Will You Learn?
- You will learn the basic principles of Python and study all the main functions that are used most often in real projects and are most in demand
- You will practice all the examples that I will show throughout the course using the Python interpreter, Visual Studio Code with Code Runner
- You will learn the basic functionality of Python, ranging from variables, lists, dictionaries to classes, loops, modules and creating virtual environments
- In addition, you will learn to use functional and object-oriented approaches to programming in Python
Course Content
Introduction to Python
-
Introduction to Python
-
Join the community of like-minded people!
-
How to take the course
-
Where to Run and Write Python Code
-
Installing Python
Installing and configuring the Visual Studio Code editor
-
Installing the VS Code editor
-
Getting started in VS Code
-
Changing VS Code Editor Settings
-
Introducing the Python Interpreter
-
Code execution in Visual Studio Code
Installing PyCharm
-
Installing and using PyCharm
Basic Concepts in Python
-
The most important thing in Python
-
Basic types in Python
-
Practice using the interactive Python interpreter
Built-in Functions in Python
-
Built-in functions
-
Dir function and object attributes
-
Practice – Print and dir builtins
-
Practice – Built-in input function and string methods
Code Formatting and PEP8
-
Indentation in Python
-
Formatting Python and PEP8 code
-
Comments in Python
Expressions and instructions
-
Expressions
-
Instructions
Variables
-
Variables
-
Declaring Variables and Assigning Values to Them
Types and Data Structures
-
Dynamic typing
Types and Data Structures
-
Variables and objects
-
Built-in id function
-
Practice – Built-in id function and objects
Strings
-
Strings – str
-
Practice – Strings
-
Built-in String Functions and Methods
-
Practice – String Methods
Integers and Other Numbers in Python
-
Integers – int
-
Practice – Integers
-
Numbers with a decimal point – float
-
Complex numbers – complex
Boolean type
-
Boolean type – bool
-
Practice – Boolean type
Magic methods
-
Type conversion
-
Practice – Introduction to Magical Techniques
Magic methods
-
Lists
-
Lists
-
List Methods
-
Miscellaneous list operations
-
Copying lists
-
Practice – Lists
-
TASKS – Lists
-
SOLUTIONS – Lists
Dictionaries
-
Dictionaries – dict
-
Changing and deleting values in dictionaries
-
Using Variables in Dictionaries
-
Dictionary length
-
Non-existent keys and get method
-
Dictionary summary
-
Practice – Dictionaries
-
Practice – Copying a dictionary
-
Practice – Converting other meanings into a dictionary
-
TASK – Dictionaries
-
SOLUTION – Dictionaries
Tuples
-
Tuples – tuple
-
Tuple Methods
-
Practice – Tuples
Sets
-
Sets
-
Practice – Checking for Unordered Sets
-
Mutable objects in sets
-
Practice – Sets
-
Set Methods
-
Practice – Set Methods
-
Practice – Symmetrical difference in sets
-
CHALLENGE – Kits
-
SOLUTION – Sets
Ranges
-
Ranges
-
Practice – Ranges
-
Sequence Type Comparison
Zip function
-
Built-in zip function
-
Convert zip to dict
Changing Objects in Python
-
Changing Objects in Python
-
Behavior of Mutable Objects
-
How to avoid altering copies
-
Practice – Making shallow and full copies
Functions
-
Functions
-
Shortest function and pass
-
Passing immutable objects to a function
-
Passing mutable objects to a function
-
How to avoid changing external objects in a function
-
TASK – Functions
-
SOLUTION – Functions
Function Arguments
-
Function Arguments
-
Combining all arguments into a tuple in a function
-
Keyword Arguments
-
Combining named arguments into a dictionary
-
TASKS – Named function arguments
-
SOLUTIONS – Named Function Arguments
Default Function Settings
-
Default Function Parameter Values
-
Practice – Default Parameter Values
Callback functions
-
Callback functions
-
Practice – Callback functions
How to work with functions
-
Rules for working with functions
-
Function documentation docstring
-
Scope
-
Variable life cycle
-
The global keyword in functions
-
Practice – Global and local variables
Operators
-
Operators
-
Operators and magic methods
-
Dir function
-
Binary and unary operators
-
Operators in, not in
-
Operator priority
-
TASK – Operators
-
SOLUTION – Operators
-
False values
Logical operators
-
Logical operators
-
Short circuit operators or and and
-
Practice – Logical operators
Unpacking dictionaries
-
Dictionary unpacking operator
-
Merging dictionaries
Del instruction
-
Del instruction
-
Concatenating Strings
-
Concatenating Strings
-
Formatting strings with f-strings
-
Practice – Joining strings using +
-
Practice – f-strings
Lambda functions
-
Lambda functions
-
Practice – Lambda functions
Error processing
-
Error processing
-
Getting error information
-
Different types of errors in different blocks except
-
Else and finally blocks in error handling
-
No error type and Exception class
-
Creating errors
-
TASK – Error Handling
-
SOLUTION – Error Handling
Unpacking lists and tuples
-
Unpacking lists and tuples
-
Dictionary unpacking into named arguments
-
Unpacking a list into positional arguments
Conditional if statements
-
Conditional instructions
-
If statement
-
If else statement
-
If elif statement
-
Using if in functions
-
TASK – Conditional instructions
-
SOLUTION – Conditional statements
Ternary operator
-
Ternary operator
-
Practice – Ternary operator
-
PROBLEMS – Ternary operator
-
SOLUTIONS – Ternary operator
For in loop
-
Cycles
-
For in loop
-
Practice – for in loop
-
Iterate over keys with values in a dictionary
-
For in loop for sets
-
TASKS – For in loop
-
SOLUTIONS – For in loop
-
SOLUTION – Built-in filter function
While loop
-
While loop
-
Using continue in loops
-
TASK – while loop
-
SOLUTION – While loop
Shortened for in loop
-
Shortened for in loop
-
Examples with shortened for in loop
-
Practice – shortened for in loop
-
TASKS – Abbreviated for in loop
-
SOLUTIONS – Shortened for in loop
-
Generators in abbreviated form for in
-
Practice – generators
Objects and classes
-
Objects and classes
-
Practice – Creating Class Instances
-
Magic class method __init__
-
Practice – Objects with their own attributes
-
TASK – Classes and Instances
-
SOLUTION – Classes and Instances
-
Instance and class methods
-
Static class methods
-
Class attributes
Magic methods in classes
-
Magic methods in classes
-
Inheritance from other classes
-
Practice – Creating Subclasses
Modules
-
Modules
-
Practice – Modules
-
What are __main__ and __name__
-
Built-in modules
-
Creating packages
JSON
-
JSON
-
Convert JSON to Dictionary
-
Practice – JSON
-
TASK – JSON
-
SOLUTION – JSON
Working with files
-
Working with files
-
Methods of the Path class
-
Practice – Working with paths to files and directories
-
Reading and writing files
-
Practice – Writing and reading files
-
Practice – Deleting files
-
TASK – Writing and reading files
-
SOLUTION – Writing and reading files
Working with zip archives
-
Creating a zip archive
-
Practice – Unpacking a zip archive
Working with CSV files
-
Working with CSV files
-
Practice – Reading from CSV files
Working with dates and times
-
Datetime module
-
Practice – Formatting Dates
-
Using the timedelta class
-
Time module
Modules for working with numbers
-
Random module
-
Secrets module for generating passwords
-
Math module
-
Recursive functions
Working with Regular Expressions
-
Module for regular expressions re
-
Saving a pattern in a separate object
-
Validating email using regular expression
-
TASK – Password verification
-
SOLUTION – Password check
Sending an email
-
Sending email using the smtplib module
-
Compose and send email
-
HTML templates for sending email
-
Sending attachments to email
Working with a SQLite database
-
SQLite3 module and database creation
-
Practice – Writing data to a SQLite table
-
Practice – Reading data from a SQLite table
Other built-in modules
-
Array module
-
Function Arguments and the sys Module
-
Webbrowser module
Virtual Environments, PIP and Pipenv
-
PIP Package Manager
-
Virtual Environments and Pipenv
-
Creating a virtual environment
-
Pipfile and Pipfile.lock files
-
Using packages in a virtual environment
-
Installing additional packages in a virtual environment
-
Package tree and package update
Introduction to the Django web framework
-
Django Project Overview
-
Final version of the Django project
-
Introduction to Django and the MVC pattern
-
Installing Django
Creating a Django Project
-
Creating a new Django project
-
Starting the Django Server
-
Selecting a virtual environment in VS Code
-
Django Project Files
-
Django Project Settings Overview
-
WSGI and ASGI Settings
-
Other Django project settings
-
Routing settings in a Django project
Creating a Django Application
-
Creating a Django Application
-
Difference between project and applications
-
Browse Application Files
-
Creating a View Function
-
Linking a view function to a route
-
Adding Application Routes to Project Routes
-
Checking application availability in the web interface
Database and migrations in Django
-
Applying database migrations
-
Creating an administrator account
-
Creating Models
-
Changing the list of installed applications
-
Creating Migrations
-
Applying the created migrations
-
Changing models
-
Create a category using a model
-
Creating courses in a category
-
Connecting models in the admin panel
-
Adding __str__ Magic Method to Models
-
Displaying course titles on a web page
Creating Templates in Django
-
Creating an HTML Template
-
Using Data from a Database in a Template
-
Communication between layers in Django applications
-
Connecting the Bootstrap style library
-
Creating a Basic HTML Template
-
Adding a generic navigation block
Routing between pages in Django
-
Adding a route for one course
-
Creating a View Function for a Course Page
-
Create a template for a course page
-
Checking an Individual Course Page
-
Displaying a 404 page if the course is not in the database
-
Setting up routing between pages
-
Routing using route names
-
Routing using application names and routes
-
Transferring templates to a shared folder
-
Wrapping up the Shop app
Creating an API Service in Django
-
Creating an api application
-
Creating models for the api application
-
Setting up routing for the api application
-
Checking the operation of the API service
-
Adding an API version
-
Installing Postman
-
Setting up authentication and authorization for the API
-
Creating an API key
-
Deleting a course via API
-
Create a new course using POST
-
Changing data before sending it to clients via API
Django Project Summary
-
Summing up the application api
-
API application refactoring
-
Moving the store to the main page
-
Changing the Admin Panel
-
Summarizing the entire Django project
Making Games with Pygame
-
Introduction to Pygame
-
Final version of the Pygame project
-
Launching a game and events in Pygame
-
Changing the background color in the game
Adding and moving objects in Pygame
-
Adding a rectangle in game
-
TASK – Place a rectangle in the center of the screen
-
SOLUTION – Place the rectangle in the center of the screen
-
Moving a rectangle using the keyboard buttons
-
Move a rectangle within the screen only
-
Summary of the rectangle game
Creating a shooter game with Pygame
-
Demonstration of a shooter game
-
Adding a ship to the screen
-
Move the ship left and right
-
Continuous movement of the ship while pressing the key
-
Adding a ball on the screen
-
Move and hide the ball
-
Displaying an alien in the game
-
Adding a game loss
Logic in Pygame games
-
Ball hitting an alien
-
Alien acceleration
-
Adding a hit counter
-
Summing up the creation of the game