Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
100 Days of Python Programming Challenge
Rating: 4.4 out of 5(6 ratings)
26 students

100 Days of Python Programming Challenge

Master Python in 100 days, Build Websites, Learn Data Science
Created byFunmilayo Tobun
Last updated 2/2025
English

What you'll learn

  • Master Python Basics – Learn data types, loops, functions, and OOP to build a solid foundation.
  • Build Real-World Projects – Create apps like a to-do list, expense tracker, and chat app.
  • Use Popular Libraries – Work with Pandas, NumPy, Flask, and Matplotlib for data and web development.
  • Improve Problem-Solving – Write efficient code, debug errors, and optimize solutions.

Course content

1 section100 lectures18h 30m total length
  • Introduction to the Print Statement in Python14:58

    In this lesson, you'll learn about one of the most fundamental functions in Python—the print() statement. The print() function allows you to display text, numbers, and other outputs on the screen, making it essential for debugging and interacting with users.

    We'll cover:
    ✅ How to use the print() function
    ✅ Printing text, numbers, and variables
    ✅ Using escape sequences for formatting
    ✅ Printing multiple values with separators

    By the end of this lesson, you'll be able to confidently use print() to display information and format output effectively. Let’s get started! ?

  • Understanding the Input Statement in Python7:52

    In this lesson, you'll learn how to use the input() function in Python to take user input. The input() function is essential for interactive programs, allowing users to enter data that your program can process.

    We'll cover:
    ✅ How the input() function works
    ✅ Accepting and storing user input
    ✅ Converting input into different data types
    ✅ Practical examples of using input() in programs

    By the end of this lesson, you'll be able to write interactive Python programs that take and process user input. Let’s dive in! ?

  • Understanding While Loops in Python12:06

    In this lesson, you'll learn how to use while loops in Python to execute code repeatedly based on a condition. While loops are essential for tasks that require continuous execution until a specific condition is met.

    We'll cover:
    ✅ How while loops work
    ✅ Writing loops with different conditions
    ✅ Using break and continue statements
    ✅ Avoiding infinite loops with proper control

    By the end of this lesson, you'll be able to use while loops effectively to automate repetitive tasks in your Python programs. Let’s get started! ?

  • Understanding If Statements in Python9:43

    In this lesson, you'll learn how to use the if statement in Python to make decisions in your programs. Conditional statements allow your code to execute different actions based on specific conditions.

    We'll cover:
    ✅ How the if statement works
    ✅ Using if, elif, and else for multiple conditions
    ✅ Writing conditions with comparison operators
    ✅ Practical examples of decision-making in Python

    By the end of this lesson, you'll be able to use if statements to control the flow of your programs and make them more dynamic. Let’s dive in! ?

  • Project: Number Guessing Game5:20

    In this lesson, you'll apply your Python skills by building an interactive Number Guessing Game! This fun project will help you understand how to use loops, conditional statements, and user input together.

    We'll cover:
    ✅ Generating random numbers using the random module
    ✅ Taking user input and checking guesses
    ✅ Using while loops to keep the game running
    ✅ Providing hints and feedback to the player

    By the end of this lesson, you'll have a fully functional number guessing game and a deeper understanding of Python programming logic. Let’s start coding! ?

  • Working with Date and Time in Python12:06

    In this lesson, you'll learn how to work with dates and times in Python using the datetime module. Handling date and time is essential for logging events, scheduling tasks, and managing time-based operations in your programs.

    We'll cover:
    ✅ Importing and using the datetime module
    ✅ Getting the current date and time
    ✅ Formatting and manipulating dates and times
    ✅ Converting between different date formats

    By the end of this lesson, you'll be able to effectively work with dates and times in Python for various applications. Let’s dive in! ?

  • Introduction to Graphical User Interfaces (GUI) in Python14:50

    In this lesson, you'll learn how to create Graphical User Interfaces (GUIs) in Python to make your programs more interactive and user-friendly. We'll explore how to use Tkinter, Python’s built-in GUI library, to build simple applications with buttons, labels, and input fields.

    We'll cover:
    ✅ What a GUI is and why it's useful
    ✅ Introduction to the Tkinter library
    ✅ Creating a basic window and adding widgets
    ✅ Handling user interactions with buttons and input fields

    By the end of this lesson, you'll be able to build basic GUI applications and enhance your Python projects with a graphical interface. Let’s get started! ?

  • Understanding Boolean Values in Python10:53

    In this lesson, you'll learn about Boolean values (True and False) and how they are used in Python for decision-making and logical operations. Booleans play a key role in conditional statements, loops, and comparisons.

    We'll cover:
    ✅ What Boolean values are
    ✅ Using comparison operators (==, !=, >, <, etc.)
    ✅ Logical operators (and, or, not)
    ✅ How Booleans work in conditions and loops

    By the end of this lesson, you'll understand how to use Booleans effectively to control program flow and make logical decisions. Let’s dive in! ?

  • Working with File Handling in Python – Opening Files14:24

    In this lesson, you'll learn how to open and read files in Python using the built-in open() function. File handling is essential for reading, writing, and managing external data in your programs.

    We'll cover:
    ✅ How to use the open() function
    ✅ Reading file content with different modes (r, rb, etc.)
    ✅ Handling errors when working with files
    ✅ Best practices for opening and closing files

    By the end of this lesson, you'll be able to open and read files efficiently, making your Python programs more dynamic and data-driven. Let’s get started! ?

  • Introduction to Exception Handling in Python13:11

    In this lesson, you’ll learn how to handle exceptions in Python to make your programs more robust and error-resistant. Exception handling helps you gracefully manage unexpected errors during runtime and provides a way to handle those situations without crashing your program.

    We'll cover:
    ✅ What exceptions are and why they occur
    ✅ Using try, except, and else blocks to handle errors
    ✅ Raising exceptions with raise
    ✅ Using finally for clean-up actions

    By the end of this lesson, you'll be able to handle and manage errors in your Python programs, ensuring smoother user experiences. Let’s dive in! ?

  • Understanding Tuples in Python18:20

    In this lesson, you'll explore tuples—one of Python’s fundamental data structures. Tuples are similar to lists but are immutable, meaning their contents cannot be changed once created. This makes them ideal for storing fixed collections of data.

    We'll cover:
    ✅ What tuples are and how they differ from lists
    ✅ Creating and accessing tuple elements
    ✅ Tuple packing and unpacking
    ✅ Using tuples in real-world examples

    By the end of this lesson, you'll understand how to work with tuples in Python and when to use them in your programs. Let’s get started! ?

  • Python Comments10:14

    In this lesson, you'll learn about comments in Python and how they help improve code readability and maintainability. Comments allow you to add explanations to your code without affecting its execution.

    We'll cover:
    ✅ What comments are and why they are important
    ✅ Writing single-line and multi-line comments
    ✅ Using comments for documentation and debugging
    ✅ Best practices for writing clear and meaningful comments

    By the end of this lesson, you'll be able to use comments effectively to make your Python code more readable and well-documented. Let’s dive in! ?

  • Understanding break, continue, and pass in Python9:51

    In this lesson, you'll learn about the break, continue, and pass statements in Python, which help control the flow of loops and conditionals. These statements allow you to manage loop execution efficiently.

    We'll cover:
    ✅ How break exits a loop early
    ✅ How continue skips an iteration and moves to the next
    ✅ How pass acts as a placeholder in your code
    ✅ Practical examples of using these statements in loops

    By the end of this lesson, you'll understand how to use break, continue, and pass to control the flow of your Python programs effectively. Let’s get started! ?

  • Building a Rock, Paper, Scissors Game in Python7:38
  • Exploring the Math Module in Python7:24

    In this lesson, you'll learn how to use the math module in Python to perform advanced mathematical operations beyond basic arithmetic. The math module provides functions for working with numbers, including trigonometry, logarithms, and more.

    We'll cover:
    ✅ Importing and using the math module
    ✅ Common math functions (sqrt(), ceil(), floor(), pow())
    ✅ Working with constants like pi and e
    ✅ Using trigonometric and logarithmic functions

    By the end of this lesson, you'll be able to use the math module to solve complex mathematical problems efficiently in Python. Let’s dive in! ?

  • Common Python Errors11:49

    In this lesson, you'll learn about common Python errors that programmers encounter and how to fix them. Understanding these errors will help you debug your code more efficiently and write better programs.

    We'll cover:
    ✅ Syntax Errors – Mistakes in Python syntax
    ✅ Name Errors – Using undefined variables
    ✅ Type Errors – Mismatched data types
    ✅ Index and Key Errors – Issues with lists and dictionaries

    By the end of this lesson, you'll be able to identify common Python errors, making your coding experience smoother. Let’s get started! ?

  • Exploring Built-in Functions in Python10:28

    In this lesson, you'll learn about Python’s built-in functions, which provide powerful and ready-to-use features without requiring additional libraries. These functions help you perform common tasks like handling numbers, working with strings, and manipulating data efficiently.

    We'll cover:
    ✅ Common built-in functions like print(), len(), type(), and input()
    ✅ Working with numerical functions (abs(), round(), sum())
    ✅ String manipulation functions (upper(), lower(), split())
    ✅ List and data structure functions (max(), min(), sorted())

    By the end of this lesson, you'll know how to leverage built-in functions to write cleaner and more efficient Python code. Let’s dive in! ?

  • Understanding Variables in Python10:17

    In this lesson, you'll learn about variables in Python and how they are used to store and manage data in your programs. Variables are essential building blocks in programming, allowing you to store values and reuse them efficiently.

    We'll cover:
    ✅ What variables are and how to create them
    ✅ Variable naming rules and best practices
    ✅ Different data types (integers, strings, floats, booleans)
    ✅ Assigning and updating variable values

    By the end of this lesson, you'll be able to declare and use variables effectively in Python programs. Let’s get started! ?

  • Writing to a File in Python11:05

    In this lesson, you'll learn how to write data to a file in Python using the built-in open() function. File writing is essential for saving program output, logging data, and creating reports.

    We'll cover:
    ✅ Opening a file in write ('w'), append ('a'), and exclusive ('x') modes
    ✅ Writing text to a file using write() and writelines()
    ✅ Handling file operations safely with with open()
    ✅ Best practices for writing files efficiently

    By the end of this lesson, you'll be able to create and write data to files, making your Python programs more dynamic. Let’s dive in! ?

  • Building an Expense Tracker in Python9:46

    In this lesson, you'll apply your Python skills to create a simple Expense Tracker that helps users log and manage their expenses efficiently. This project will enhance your knowledge of file handling, user input, and data processing.

    We'll cover:
    ✅ Taking user input for expense details (amount, category, date)
    ✅ Displaying past expenses and calculating total spending
    ✅ Implementing basic data analysis for expense tracking

    By the end of this lesson, you'll have a functional Expense Tracker that can store and retrieve financial data, helping users manage their budget effectively. Let’s get started! ?

  • Building a Unit Converter in Python6:55

    In this lesson, you'll create a Unit Converter in Python that allows users to convert between different units of measurement, such as length, weight, and temperature. This project will strengthen your skills in user input, conditional statements, and mathematical operations.

    We'll cover:
    ✅ Taking user input for the unit type and value
    ✅ Implementing conversion formulas for length (km to miles), and temperature (Celsius to Fahrenheit)
    ✅ Displaying the converted value to the user
    ✅ Enhancing the program with a menu-driven approach

    By the end of this lesson, you'll have a fully functional Unit Converter that can handle various measurements. Let’s start coding! ?

  • Building a Tip Calculator in Python10:30

    In this lesson, you'll build a Tip Calculator in Python that helps users calculate the tip amount based on the bill total and chosen tip percentage. This project will improve your skills in user input, basic arithmetic operations, and conditional statements.

    We'll cover:
    ✅ Taking user input for the bill amount and tip percentage
    ✅ Calculating the tip and total bill
    ✅ Splitting the bill between multiple people
    ✅ Formatting the output to make it user-friendly

    By the end of this lesson, you'll have a fully functional Tip Calculator that can be used in real-world scenarios. Let’s dive in! ?

  • Understanding Lambda Functions in Python6:28

    In this lesson, you'll learn about lambda functions in Python, which are small, anonymous functions used for short, one-time operations. They are often used in situations where a full function definition isn't necessary.

    We'll cover:
    ✅ What lambda functions are and how they work
    ✅ Writing simple lambda functions with one or more arguments
    ✅ When to use lambda functions in real-world applications

    By the end of this lesson, you'll be able to write and use lambda functions to simplify your Python code. Let’s get started! ?

  • Using map(), filter(), and sorted() in Python9:01

    In this lesson, you'll learn how to use Python's built-in map(), filter(), and sorted() functions to process and manipulate data efficiently. These functions help you apply operations to lists and other iterable data structures in a concise and readable way.

    We'll cover:
    ✅ How map() applies a function to each element in an iterable
    ✅ How filter() selects elements based on a condition
    ✅ How sorted() arranges data with custom sorting rules
    ✅ Using these functions with lambda expressions for efficiency

    By the end of this lesson, you'll be able to use map(), filter(), and sorted() to write cleaner and more efficient Python code. Let’s dive in! ?

  • Building a Binary to Decimal Converter in Python6:22

    In this lesson, you'll learn how to create a Binary to Decimal Converter in Python. This project will help you understand number systems and how to convert binary (base 2) numbers into decimal (base 10) using Python.

    We'll cover:
    ✅ Understanding the binary and decimal number systems
    ✅ Converting binary to decimal using mathematical logic
    ✅ Using Python’s built-in int() function for conversion
    ✅ Validating user input to ensure correct binary numbers

    By the end of this lesson, you'll have a fully functional Binary to Decimal Converter and a deeper understanding of number system conversions. Let’s start coding! ?

  • Installing and Managing Python Packages6:28

    In this lesson, you'll learn how to install and manage Python packages using pip, Python’s package manager. Installing external libraries allows you to extend Python’s functionality and use pre-built tools for various applications.

    We'll cover:
    ✅ What Python packages are and why they are useful
    ✅ Installing packages using pip install package_name
    ✅ Upgrading and uninstalling packages

    By the end of this lesson, you'll be able to install, update, and manage Python packages efficiently, making it easier to work on different projects. Let’s dive in! ?

  • Building a QR Code Generator in Python5:19

    In this lesson, you'll learn how to create a QR Code Generator in Python using the qrcode library. QR codes are widely used for storing and sharing information, such as URLs, text, and contact details.

    We'll cover:
    ✅ Installing and using the qrcode library
    ✅ Generating a basic QR code from text or a URL
    ✅ Customizing the QR code’s size, colors, and format
    ✅ Saving the QR code as an image file

    By the end of this lesson, you'll be able to generate and customize QR codes for various applications. Let’s get started! ?

  • Exploring itertools in Python9:47

    In this lesson, you'll learn how to use Python’s itertools module, which provides powerful tools for handling iterators efficiently. The itertools module is useful for generating permutations, combinations, and infinite sequences.

    We'll cover:
    ✅ What itertools is and why it's useful
    ✅ Using itertools functions like count(), cycle(), and repeat()
    ✅ Generating permutations and combinations
    ✅ Applying itertools for efficient looping and data processing

    By the end of this lesson, you'll understand how to use itertools to simplify complex iteration tasks and optimize your Python code. Let’s dive in! ?

  • Converting Text to Audio in Python5:34

    In this lesson, you'll learn how to create a Text-to-Speech (TTS) Converter in Python using the gTTS (Google Text-to-Speech) library. This project will help you convert written text into spoken words, making it useful for accessibility, audiobooks, or automated voice responses.

    We'll cover:
    ✅ Installing and using the gTTS library
    ✅ Converting text input into an audio file
    ✅ Playing the generated audio using Python
    ✅ Saving the audio file for future use

    By the end of this lesson, you'll be able to build a Python program that converts text into speech, making your applications more interactive. Let’s get started! ?

  • Building a Palindrome Checker in Python7:20

    In this lesson, you'll learn how to create a Palindrome Checker in Python. A palindrome is a word, phrase, or number that reads the same forward and backward (e.g., "madam" or "121"). This project will enhance your skills in string manipulation and conditional logic.

    We'll cover:
    ✅ Understanding what palindromes are
    ✅ Writing a function to check if a word or number is a palindrome
    ✅ Using string slicing and loops for palindrome detection
    ✅ Ignoring case and special characters for better accuracy

    By the end of this lesson, you'll be able to create a Python program that checks for palindromes efficiently. Let’s start coding! ?

  • Introduction to Pandas in Python14:05

    In this lesson, you'll be introduced to Pandas, one of Python’s most powerful libraries for data analysis and manipulation. Pandas makes it easy to work with structured data, such as tables and spreadsheets.

    We'll cover:
    ✅ Installing and importing Pandas
    ✅ Understanding Pandas Series and DataFrames
    By the end of this lesson, you'll be able to use Pandas to handle and analyze data efficiently, making it a valuable tool for data science and real-world applications. Let’s dive in! ?

  • Reading Files with Pandas in Python6:42

    In this lesson, you'll learn how to read and load data files using Pandas, a powerful Python library for data analysis. Pandas makes it easy to work with structured data from various file formats, such as CSV, Excel, and JSON.

    We'll cover:
    ✅ Reading CSV files with pd.read_csv()
    ✅ Loading Excel files using pd.read_excel()
    ✅ Working with JSON data using pd.read_json()
    ✅ Handling missing data and cleaning datasets

    By the end of this lesson, you'll be able to import and process data from different file types using Pandas, making data analysis much more efficient. Let’s get started! ?

  • Data Cleaning in Pandas9:43

    In this lesson, you'll learn how to clean and preprocess data in Python using the Pandas library. Data cleaning is an essential step in preparing your datasets for analysis and ensuring that your results are accurate and reliable.

    We'll cover:
    ✅ Identifying and handling missing values
    ✅ Removing duplicates from your dataset
    ✅ Correcting data types and formatting

    By the end of this lesson, you'll be able to clean and preprocess your data efficiently, ensuring that your datasets are ready for analysis. Let’s dive in! ?

  • Data Visualization with Pandas, Matplotlib, and Seaborn12:40

    In this lesson, you'll learn how to visualize your data using Pandas, Matplotlib, and Seaborn, three of Python's most powerful libraries for creating charts and graphs. Data visualization helps you identify patterns, trends, and insights in your data.

    We'll cover:
    ✅ Creating basic plots with Pandas (line, bar, histogram, etc.)
    ✅ Customizing visualizations using Matplotlib (titles, labels, colors)
    ✅ Creating more advanced visualizations with Seaborn (heatmaps, pairplots, boxplots)
    ✅ Choosing the right plot for your data and purpose

    By the end of this lesson, you'll be able to visualize your data effectively and create clear, informative charts. Let’s get started! ?

  • Introduction to Functions in Python7:24

    In this lesson, you'll be introduced to functions in Python, one of the most important concepts in programming. Functions allow you to group related code into reusable blocks, making your programs cleaner, more efficient, and easier to maintain.

    We'll cover:
    ✅ What functions are and why they are useful
    ✅ How to define a function using the def keyword
    ✅ Passing parameters to functions
    ✅ Returning values from functions
    ✅ Calling functions and understanding scope

    By the end of this lesson, you'll understand the fundamentals of functions and be able to write your own to improve your Python programs. Let’s get started! ?

  • Advanced Function Concepts in Python12:03

    In this lesson, we’ll dive deeper into advanced function concepts in Python, enhancing your ability to write flexible and powerful code. These concepts are crucial for writing more efficient and reusable functions.

    We'll cover:
    Function arguments: Understanding *args, *kwargs, and default arguments
    Nested functions: Defining functions inside other functions
    Higher-order functions: Passing functions as arguments and returning functions

    By the end of this lesson, you’ll have a deeper understanding of Python’s function capabilities and be able to write more advanced and dynamic code. Let’s dive in! ?

  • Building a To-Do List Application in Python12:05

    In this lesson, you'll create a simple To-Do List application in Python to help users manage their tasks. This project will enhance your skills in handling user input, working with lists, and file operations for persistent storage.

    We'll cover:
    ✅ Adding, viewing, and deleting tasks from the to-do list
    ✅ Creating a basic menu system for user interaction

    By the end of this lesson, you'll have a functional To-Do List application that can manage and store tasks, giving you hands-on experience with key programming concepts. Let’s start coding!

  • Understanding For Loops in Python12:05

    In this lesson, you'll learn how to use for loops in Python, one of the most essential control flow tools for iterating over sequences like lists, strings, and ranges. For loops make it easy to repeat actions multiple times without writing redundant code.

    We'll cover:
    ✅ What for loops are and how they work
    ✅ Iterating through sequences like lists, tuples, and strings
    ✅ Using the range() function to create loops with specific iteration counts
    ✅ Nested for loops for multi-level iteration
    ✅ Practical examples like summing a list of numbers or printing a pattern

    By the end of this lesson, you'll be able to use for loops to repeat tasks efficiently and process collections of data in Python. Let’s dive in! ?

  • Using enumerate() in Python8:21

    In this lesson, you'll learn how to use the enumerate() function in Python to simplify iterating through lists while keeping track of the index. This function is particularly useful when you need both the index and the value of the items during iteration.

    We'll cover:
    ✅ What enumerate() is and how it works
    ✅ Using enumerate() with loops to get both index and value
    ✅ Customizing the starting index with the start parameter
    ✅ Practical examples, such as printing indexed items or processing data with their indices

    By the end of this lesson, you'll be able to use enumerate() to make your loops cleaner and more efficient, especially when working with indexed data. Let’s get started! ?

  • Building an Alarm Clock Application in Python12:48

    In this lesson, you'll create a simple Alarm Clock application in Python that can play a sound or show a message at a specified time. This project will help you improve your skills in handling time and using external libraries.

    We'll cover:
    ✅ Using Python's time module to handle scheduling
    ✅ Creating an alarm that triggers at a specific time
    ✅ Playing a sound or displaying a message when the alarm goes off
    ✅ Implementing a basic user interface to set and manage alarms

    By the end of this lesson, you'll have a working Alarm Clock application that can remind users of important events. Let’s get started! ?

  • Introduction to Classes in Python12:03

    In this lesson, you’ll learn about classes in Python, a key concept in object-oriented programming (OOP). Classes allow you to define your own data types and organize your code into reusable objects that can have both properties and methods.

    We'll cover:
    ✅ What classes are and why they are important
    ✅ Defining a class with attributes and methods
    ✅ Creating objects (instances) from a class
    ✅ Understanding the self keyword
    ✅ Basic concepts like constructors and instance variables

    By the end of this lesson, you'll be able to create your own classes and use object-oriented principles to organize your Python code effectively. Let’s dive in! ?

  • Understanding Instance, Class, and Static Methods in Python9:45

    In this lesson, you'll learn about the three types of methods you can define in a Python class: instance methods, class methods, and static methods. Each method has different behavior and use cases, making them essential for writing well-structured object-oriented code.

    We'll cover:
    Instance methods: Accessing and modifying instance attributes, and using self
    Class methods: Using the @classmethod decorator, accessing class-level data, and using cls
    Static methods: Using the @staticmethod decorator, when and why to use static methods without needing the instance or class

    By the end of this lesson, you'll understand how and when to use each type of method in Python classes to design more efficient and flexible code. Let’s get started! ?

  • Building a Leap Year Checker in Python8:32

    In this lesson, you'll create a Leap Year Checker in Python to determine whether a given year is a leap year. This project will help you practice conditional statements and mathematical logic for solving real-world problems.

    We'll cover:
    ✅ Understanding the rules of leap years (divisible by 4, except years divisible by 100 unless divisible by 400)
    ✅ Writing a function to check if a year is a leap year
    ✅ Taking user input and validating it
    ✅ Displaying results to the user in a clear format

    By the end of this lesson, you'll have a working Leap Year Checker and a deeper understanding of how to use conditional logic in Python. Let’s start coding! ?

  • Checking Prime Numbers in Python8:44

    In this lesson, you'll learn how to check if a number is prime in Python. Prime numbers are numbers greater than 1 that have no divisors other than 1 and themselves. This project will help you practice loops, conditional statements, and efficiency optimization in Python.

    We'll cover:
    ✅ What prime numbers are and how to identify them
    ✅ Writing a function to check if a number is prime
    ✅ Optimizing the function by checking up to the square root of the number
    ✅ Testing the function with different inputs

    By the end of this lesson, you’ll have a working prime number checker and a better understanding of number theory in programming. Let’s get started! ?

  • Working with Nested Data Structures in Python9:44

    In this lesson, you'll learn how to work with nested data structures in Python, such as lists inside dictionaries, dictionaries inside lists, and other combinations of lists, dictionaries, tuples, and sets. Nested data structures are powerful tools for organizing complex data in a structured way.

    We'll cover:
    ✅ What nested data structures are and when to use them
    ✅ Accessing and modifying elements in nested lists and dictionaries
    ✅ Iterating through nested data structures with loops
    ✅ Practical examples like storing and processing data for a database or user profiles

    By the end of this lesson, you’ll be comfortable working with complex, multi-level data structures in Python. Let’s dive in! ?

  • Understanding Shallow and Deep Copies in Python11:11

    In this lesson, you'll learn the difference between shallow copies and deep copies in Python. Copying objects can be tricky when dealing with mutable data types like lists and dictionaries. Knowing when and how to use shallow and deep copies will help you avoid unintended side effects in your code.

    We'll cover:
    ✅ What shallow copies are and how they are created with copy() and copy.copy()
    ✅ What deep copies are and how they are created with copy.deepcopy()
    ✅ The difference between shallow and deep copies in terms of nested data structures
    ✅ Practical examples to demonstrate the behavior of both shallow and deep copies

    By the end of this lesson, you’ll understand how to make copies of your data correctly to avoid bugs and unintended changes in your programs. Let’s get started! ?

  • Solving the FizzBuzz Problem in Python9:26

    In this lesson, you'll learn how to solve the famous FizzBuzz problem in Python. FizzBuzz is a common programming challenge that tests your ability to work with conditional statements and loops.

    We’ll cover:
    ✅ Understanding the FizzBuzz problem (printing "Fizz" for multiples of 3, "Buzz" for multiples of 5, and "FizzBuzz" for multiples of both 3 and 5)
    ✅ Writing a Python function to solve the problem using loops and conditions
    ✅ Optimizing the solution for readability and efficiency
    ✅ Handling edge cases like negative numbers or non-integer input

    By the end of this lesson, you'll have a working FizzBuzz solution and improved skills in using loops and conditional logic. Let’s dive in! ?

  • Creating a PDF Generator in Python14:19

    In this lesson, you'll learn how to generate PDF files using Python. This project will introduce you to the FPDF library, which allows you to create customized PDF documents programmatically.

    We'll cover:
    ✅ Installing and using the FPDF library
    ✅ Creating a simple PDF with text, titles, and paragraphs
    ✅ Customizing the PDF layout (font size, style, etc.)
    ✅ Adding images and tables to your PDFs
    ✅ Saving and exporting the generated PDF

    By the end of this lesson, you'll be able to create automated PDF reports and documents, making your applications more versatile. Let’s get started! ?

  • Building a Diary Maker Application in Python18:25

    In this lesson, you'll create a Diary Maker application in Python. This project will help you practice working with file handling, user input, and date/time modules to build a simple diary where users can store their thoughts, notes, or daily reflections.

    We'll cover:
    ✅ Creating a diary file to store entries
    ✅ Writing new entries with a date stamp
    ✅ Viewing and searching through past entries
    ✅ Adding functionality for deleting or editing entries
    ✅ Using Python’s datetime module to timestamp each entry

    By the end of this lesson, you'll have a fully functional Diary Maker that allows users to create, manage, and review their diary entries. Let’s get started! ?

  • List Comprehension in Python14:11

    In this lesson, you'll learn about list comprehension in Python, a powerful and concise way to create new lists from existing ones. List comprehension simplifies your code, making it more readable and efficient.

    We'll cover:
    ✅ What list comprehension is and how it works
    ✅ Creating new lists by applying conditions or transformations
    ✅ Nested list comprehensions for handling multi-dimensional data
    ✅ Practical examples like filtering even numbers or creating squared numbers from a list

    By the end of this lesson, you'll be able to write cleaner and more Pythonic code using list comprehension. Let’s dive in! ?

  • Creating a Digital Christmas Card in Python10:40

    In this lesson, you’ll learn how to create a digital Christmas card in Python using the Turtle graphics module. This project will help you practice drawing graphics, using loops, and customizing visual elements to build a festive and creative card.

    We’ll cover:
    ✅ Installing and using the Turtle graphics module
    ✅ Drawing simple shapes (like trees, snowflakes, or stars)
    ✅ Customizing colors, fonts, and sizes for a holiday theme
    ✅ Adding text to your card (e.g., "Merry Christmas!")
    ✅ Creating an interactive design with user input or animation

    By the end of this lesson, you’ll have a beautiful digital Christmas card that you can customize and share with friends and family. Let’s get started! ?

  • Building a Secret Santa Generator in Python13:20

    In this lesson, you'll create a Secret Santa Generator in Python, which will randomly assign Secret Santa pairs to a group of people. This project will help you practice working with lists, randomization, and basic logic to ensure a fun and fair Secret Santa exchange.

    We’ll cover:
    ✅ Collecting participants' names
    ✅ Using the random module to shuffle and assign Secret Santa pairs
    ✅ Ensuring no one is assigned to themselves
    ✅ Storing and printing the pairings in a readable format

    By the end of this lesson, you'll have a fully functional Secret Santa generator that can be used for any gift exchange event. Let’s get started! ?

  • Creating a Christmas Carol and Tree in Python14:02

    In this lesson, you’ll create a Christmas Carol and Tree program using Python's Turtle graphics and string manipulation. This project combines creative drawing and text output to bring festive cheer to your code.

    We’ll cover:
    ✅ Drawing a Christmas tree with Turtle graphics, using loops and shapes
    ✅ Adding decorations like stars and ornaments
    ✅ Printing a Christmas carol (like "Jingle Bells") using string manipulation and loops
    ✅ Customizing the design with colors, text, and animation to make it more interactive

    By the end of this lesson, you’ll have both a digital Christmas tree and a festive carol displayed on your screen. Let's get creative and celebrate the season! ?

  • Creating a Snow Animation in Python13:54

    In this lesson, you’ll create a snow animation using Python’s Turtle graphics. This project will help you practice animation techniques and improve your skills in looping, randomization, and graphics. It’s perfect for bringing the winter holiday spirit to life in code!

    We’ll cover:
    ✅ Setting up the Pygame graphics window and environment
    ✅ Creating falling snowflakes with random positioning and movement
    ✅ Using loops and the random module to make the animation dynamic
    ✅ Adding interactivity, such as restarting or changing the snowflake speed
    ✅ Customizing the appearance of snowflakes with different sizes and colors

    By the end of this lesson, you’ll have a beautiful snow animation that brings the winter atmosphere to your screen. Let’s get started and make it snow! ?

  • Building a Christmas Trivia Game in Python8:18

    In this lesson, you’ll create a fun Christmas Trivia Game in Python. This project will help you practice working with user input, conditional logic, and loops, all while creating an interactive, holiday-themed game.

    We’ll cover:
    ✅ Creating a list of Christmas trivia questions and answers
    ✅ Displaying questions and accepting user input for answers
    ✅ Scoring and providing feedback based on the user’s responses
    ✅ Implementing a loop to allow the user to play multiple rounds or restart
    ✅ Customizing the trivia with festive themes and fun facts

    By the end of this lesson, you’ll have a fully functioning Christmas Trivia Game that you can share with friends and family during the holiday season. Let’s dive into the fun! ?

  • Introduction to Regular Expressions in Python22:40

    In this lesson, you’ll learn how to use regular expressions (regex) in Python to match patterns in strings. Regular expressions are a powerful tool for text manipulation, searching, and validation tasks. Understanding how to use them effectively will allow you to automate and simplify many text-processing tasks.

    We’ll cover:
    ✅ What regular expressions are and how they work
    ✅ Basic regex syntax (e.g., . for any character, \d for digits, \w for word characters)
    ✅ Using the re module in Python to search and match patterns
    ✅ Practical examples like validating emails, phone numbers, or extracting data from text
    ✅ Advanced features like capturing groups, character classes, and quantifiers

    By the end of this lesson, you'll be able to use regular expressions to perform complex text searches and validation in your Python projects. Let’s get started! ?

  • Measuring Code Execution Time in Python6:44

    In this lesson, you’ll learn how to measure the execution time of your code in Python. This is an important skill for performance optimization, allowing you to track how long certain parts of your program take to execute.

    We’ll cover:
    ✅ Using the time module to measure code execution time
    ✅ Using time.perf_counter() for high-resolution timing
    ✅ Comparing execution time between different algorithms
    ✅ Optimizing code based on the performance results

    By the end of this lesson, you’ll know how to measure and optimize the performance of your Python programs, ensuring they run efficiently. Let’s get started! ?

  • Creating a Password Generator in Python11:13

    In this lesson, you'll build a Password Generator in Python to create strong, random passwords. This project will help you practice working with the random module and string manipulation to generate secure passwords.

    We’ll cover:
    ✅ Using the random module to randomly select characters
    ✅ Creating passwords with a mix of letters, digits, and special characters
    ✅ Customizing the length and complexity of the generated password
    ✅ Ensuring the password meets security requirements (e.g., minimum length, use of uppercase, lowercase, digits, and symbols)
    ✅ Saving the generated password or displaying it to the user

    By the end of this lesson, you’ll have a functional password generator that produces secure passwords for various applications. Let’s start coding! ?

  • Using getpass for Secure Password Input in Python6:22

    In this lesson, you'll learn how to use the getpass module in Python to securely capture user passwords without displaying them on the screen. This is essential for building applications that handle sensitive information like login systems, where password security is critical.

    We’ll cover:
    ✅ What the getpass module is and how it works
    ✅ Using getpass.getpass() to securely capture password input
    ✅ Ensuring passwords are not echoed to the screen during input
    ✅ Handling exceptions and providing feedback for incorrect inputs
    ✅ Best practices for securely managing and storing passwords

    By the end of this lesson, you’ll know how to safely request passwords from users in your Python applications. Let’s dive into it! ?

  • Building a Tic-Tac-Toe Game in Python16:15

    In this lesson, you’ll create a simple Tic-Tac-Toe game in Python that can be played between two players. This project will help you practice working with 2D lists, loops, and conditional logic to create an interactive game.

    We’ll cover:
    ✅ Setting up the game board using a 2D list
    ✅ Implementing player input for moves
    ✅ Checking for winning conditions (rows, columns, diagonals)
    ✅ Handling ties when no winner is found
    ✅ Adding a loop to allow players to take turns and repeat the game

    By the end of this lesson, you'll have a working Tic-Tac-Toe game that you can play in the console. Let’s start coding and have fun! ?

  • Creating a Fireworks Animation in Python16:55

    In this lesson, you'll create a Fireworks Animation in Python using the Pygame graphics module. This project will allow you to combine graphics, loops, and randomization to simulate a fireworks display on the screen, adding a festive touch to your programming skills.

    We’ll cover:
    ✅ Setting up the Pygame graphics environment
    ✅ Creating colorful fireworks using shapes and loops
    ✅ Randomizing firework colors and positions to create a dynamic display
    ✅ Adding bursts and trails for a more realistic effect
    ✅ Customizing the animation speed and size of fireworks

    By the end of this lesson, you’ll have a vibrant fireworks animation that you can adjust and enjoy as a festive display in Python. Let’s get started and make it sparkle! ?

  • Creating a Calendar in Python4:48

    In this lesson, you'll learn how to create a simple calendar program in Python using the calendar module. This project will help you practice working with built-in Python modules, handling dates, and displaying them in an organized way.

    We’ll cover:
    ✅ Using the calendar module to generate months and years
    ✅ Formatting and displaying the calendar in a user-friendly way
    ✅ Taking user input to display specific months or years
    ✅ Handling edge cases like leap years and invalid inputs
    ✅ Customizing the appearance and adding additional functionality (like holidays)

    By the end of this lesson, you’ll have a working calendar program in Python that can display any month or year and handle date-related tasks. Let’s get started! ?

  • Understanding Expressions and Statements in Python8:37

    In this lesson, you'll learn the difference between expressions and statements in Python, which are fundamental concepts in programming. Understanding how they work will help you write cleaner and more efficient code.

    We’ll cover:
    ✅ What an expression is and how it evaluates to a value
    ✅ What a statement is and how it performs an action
    ✅ Examples of expressions (e.g., arithmetic operations, function calls)
    ✅ Examples of statements (e.g., assignments, conditionals, loops)
    ✅ The role of expressions and statements in creating Python programs

    By the end of this lesson, you'll be able to distinguish between expressions and statements and use them effectively in your code. Let’s get started! ?

  • Using the requests Module in Python15:48

    In this lesson, you’ll learn how to use the requests module in Python to send HTTP requests and handle responses. This is essential for interacting with web APIs, scraping data, or fetching content from the internet in your Python projects.

    We’ll cover:
    ✅ Installing and importing the requests module
    ✅ Sending basic GET requests to fetch data from websites
    ✅ Sending POST requests to send data to a server
    ✅ Handling responses, including status codes and data (JSON, HTML, etc.)
    ✅ Best practices for error handling and timeouts

    By the end of this lesson, you’ll be able to fetch data from the web and interact with APIs using Python. Let’s start making HTTP requests! ?

  • Web Scraping with BeautifulSoup in Python13:00

    In this lesson, you’ll learn how to use BeautifulSoup to scrape and parse HTML content from websites. This project will introduce you to the world of web scraping, allowing you to extract useful data from web pages for analysis or automation.

    We’ll cover:
    ✅ Installing and setting up BeautifulSoup and requests
    ✅ Parsing HTML content with BeautifulSoup to navigate the DOM
    ✅ Extracting data like text, links, images, and tables from web pages
    ✅ Handling common challenges in web scraping (e.g., navigating complex HTML structures)
    ✅ Respecting website policies and using web scraping ethically

    By the end of this lesson, you'll be able to extract and work with web data in Python using BeautifulSoup. Let’s dive into web scraping! ?

  • Checking for Emirp Numbers in Python9:08

    In this lesson, you’ll learn how to identify Emirp numbers in Python. An Emirp (prime spelled backward) is a number that is prime and, when its digits are reversed, it forms another distinct prime number. This project will help you practice working with prime numbers, string manipulation, and loops.

    We’ll cover:
    ✅ Understanding what an Emirp number is
    ✅ Writing a function to check if a number is prime
    ✅ Reversing the digits of a number and checking if the reversed number is also prime
    ✅ Optimizing the solution for efficiency
    ✅ Examples and tests of Emirp numbers

    By the end of this lesson, you'll be able to identify Emirp numbers and understand their unique properties. Let’s start checking out these interesting prime numbers! ?

  • Introduction to NumPy in Python16:06

    In this lesson, you’ll get an introduction to NumPy, a powerful library for numerical computing in Python. NumPy allows you to work with large, multi-dimensional arrays and matrices, and provides a variety of mathematical functions to perform operations on them. This project will lay the foundation for more advanced data analysis and machine learning tasks.

    We’ll cover:
    ✅ Installing and importing NumPy
    ✅ Creating NumPy arrays and understanding their structure
    ✅ Basic array operations (e.g., addition, subtraction, multiplication)
    ✅ Indexing, slicing, and reshaping arrays
    ✅ Understanding vectorization and how NumPy optimizes operations for speed

    By the end of this lesson, you’ll have a strong understanding of NumPy and its capabilities for handling numerical data efficiently. Let’s get started with NumPy! ?

  • Advanced NumPy Methods and Techniques16:28

    In this lesson, we’ll dive deeper into advanced NumPy methods that allow you to perform complex operations efficiently. These methods are essential for data manipulation, scientific computing, and machine learning tasks.

    We’ll cover:
    ✅ Using broadcasting to perform element-wise operations on arrays of different shapes
    ✅ Advanced array manipulation methods like reshape(), flatten(), and transpose()
    ✅ Generating random data with numpy.random
    ✅ Understanding NumPy's universal functions (ufuncs) for high-performance element-wise operations
    ✅ Using np.where() for conditional operations and selecting data based on conditions
    ✅ Advanced linear algebra operations using numpy.linalg (e.g., solving linear systems, matrix decomposition)

    By the end of this lesson, you'll be comfortable using advanced NumPy techniques to tackle complex data operations. Let’s explore the power of NumPy! ?

  • Working with JSON Data in Python13:34

    In this lesson, you’ll learn how to work with JSON (JavaScript Object Notation) data in Python. JSON is a popular format for data exchange between a server and a client, and Python provides built-in tools to parse and handle it effectively.

    We’ll cover:
    ✅ Understanding the JSON format and its structure
    ✅ Using Python’s json module to parse and load JSON data
    ✅ Converting Python objects to JSON format using json.dump() and json.dumps()
    ✅ Accessing and modifying data within a JSON object
    ✅ Handling JSON data from files and APIs
    ✅ Best practices for error handling and working with nested JSON structures

    By the end of this lesson, you'll be able to efficiently process JSON data in Python and integrate it into your applications. Let’s get started! ?

  • Introduction to Threading in Python10:43

    In this lesson, you’ll learn how to work with threading in Python, which allows you to run multiple tasks concurrently. Threading is useful for improving performance in I/O-bound tasks and making your programs more responsive and efficient.

    We’ll cover:
    ✅ What threading is and when to use it
    ✅ Creating and starting threads with the threading module
    ✅ Synchronizing threads using locks to avoid race conditions
    ✅ Using thread.join() to ensure threads complete before the program ends
    ✅ Handling thread exceptions and managing thread lifecycle
    ✅ Practical examples, like running multiple tasks simultaneously (e.g., web scraping, file I/O)

    By the end of this lesson, you'll be able to implement threading in your Python applications to make them more efficient and responsive. Let’s dive into concurrency with Python! ?

  • Encrypting and Decrypting Data in Python12:15

    In this lesson, you’ll learn how to encrypt and decrypt data in Python using the cryptography library. This technique is essential for protecting sensitive data in applications, such as passwords, personal information, or any data you want to keep secure.

    We’ll cover:
    ✅ Understanding basic encryption concepts (symmetric and asymmetric encryption)
    ✅ Installing and setting up the cryptography library
    ✅ Decrypting data to retrieve the original message
    ✅ Handling encryption keys securely
    ✅ Implementing encryption for file handling and data transmission
    ✅ Best practices for encryption, including key management and security considerations

    By the end of this lesson, you'll be able to securely encrypt and decrypt data in your Python projects. Let’s dive into encryption! ?

  • Creating a Percentage Calculator GUI in Python21:31

    In this lesson, you’ll create a Percentage Calculator with a Graphical User Interface (GUI) using the Tkinter module in Python. This project will help you practice combining basic math operations with GUI elements, allowing users to interact with your calculator easily.

    We’ll cover:
    ✅ Setting up the Tkinter module for creating a GUI
    ✅ Designing a simple interface with buttons, entry fields, and labels
    ✅ Implementing percentage calculation logic (e.g., finding percentages, percentage change)
    ✅ Handling user input and displaying results in the GUI
    ✅ Adding basic error handling (e.g., invalid input or divide by zero)
    ✅ Customizing the appearance of the calculator using Tkinter options

    By the end of this lesson, you'll have a fully functional percentage calculator with a user-friendly interface that you can build upon for other projects. Let’s start building! ?

  • NumPy vs Pandas in Python8:34

    In this lesson, you’ll learn the key differences between NumPy and Pandas, two of the most widely-used libraries in Python for data manipulation and analysis. While both are powerful tools, each has its own strengths and use cases.

    We’ll cover:
    ✅ What NumPy is and how it is optimized for handling multi-dimensional arrays and numerical data
    ✅ What Pandas is and how it simplifies data manipulation with its DataFrame and Series structures
    ✅ Comparing the performance, ease of use, and features of NumPy and Pandas
    ✅ When to use NumPy for scientific computing and numerical operations
    ✅ When to use Pandas for data analysis, cleaning, and working with structured data (e.g., CSV, Excel)
    ✅ How to integrate NumPy and Pandas together in a data science workflow

    By the end of this lesson, you'll understand the strengths of both libraries and be able to choose the right one based on your specific task. Let’s dive into the comparison! ?

  • Solving Practice Questions in Python17:12

    In this lesson, you’ll focus on solving practical programming questions using Python. The goal is to enhance your problem-solving skills by tackling various types of exercises, from basic logic puzzles to more complex algorithmic challenges. This will help reinforce your understanding of Python syntax and concepts while developing your analytical thinking.

    We’ll cover:
    ✅ Approaching programming problems step by step
    ✅ Breaking down the problem and identifying the core logic
    ✅ Applying basic programming concepts (loops, conditionals, functions, data structures)
    ✅ Using Python’s built-in libraries to simplify solutions
    ✅ Tips and tricks for improving efficiency and readability
    ✅ Working with common interview-style questions and coding challenges

    By the end of this lesson, you’ll be more confident in solving programming challenges, and you’ll have improved your problem-solving skills. Let’s dive into some practice questions and start coding! ?

  • Solving Practice Questions in Python Part 26:48

    In this lesson, you’ll focus on solving practical programming questions using Python. The goal is to enhance your problem-solving skills by tackling various types of exercises, from basic logic puzzles to more complex algorithmic challenges. This will help reinforce your understanding of Python syntax and concepts while developing your analytical thinking.

    We’ll cover:
    ✅ Approaching programming problems step by step
    ✅ Breaking down the problem and identifying the core logic
    ✅ Applying basic programming concepts (loops, conditionals, functions, data structures)
    ✅ Using Python’s built-in libraries to simplify solutions
    ✅ Tips and tricks for improving efficiency and readability
    ✅ Working with common interview-style questions and coding challenges

    By the end of this lesson, you’ll be more confident in solving programming challenges, and you’ll have improved your problem-solving skills. Let’s dive into some practice questions and start coding! ?

  • Working with the os Module in Python5:37

    In this lesson, you’ll explore the os module in Python, which provides a way to interact with the operating system. The os module allows you to manage files, directories, environment variables, and perform various system-related tasks directly from Python.

    We’ll cover:
    ✅ Understanding the os module and how it interacts with the operating system
    ✅ Working with file and directory paths using functions like os.path
    ✅ Creating, deleting, and renaming files and directories
    ✅ Navigating the file system using os.chdir() and os.getcwd()
    ✅ Managing environment variables with os.environ
    ✅ Listing files in a directory and checking file existence
    ✅ Using os functions for system-related operations (e.g., executing commands)

    By the end of this lesson, you’ll be able to automate file system tasks, manage directories, and interact with the operating system efficiently using Python. Let’s get started with the os module! ?

  • Understanding and Writing Docstrings in Python11:08

    In this lesson, you'll learn how to write docstrings in Python, which are essential for documenting your code. Docstrings provide a convenient way to explain the purpose of your functions, classes, and modules, making your code more readable and maintainable.

    We’ll cover:
    ✅ What docstrings are and why they are important
    ✅ The syntax for writing docstrings (triple quotes, placement)
    ✅ Documenting functions, classes, and modules with clear and concise descriptions
    ✅ Using docstrings to specify function parameters, return values, and exceptions
    ✅ Tools like help() to view docstrings at runtime
    ✅ Best practices for writing effective and helpful docstrings

    By the end of this lesson, you’ll know how to write professional-quality docstrings that make your Python code easier to understand and maintain. Let’s start documenting! ?

  • Understanding Stacks and Queues in Python10:12

    In this lesson, you’ll learn about two essential data structures in Python: Stacks and Queues. Both are used to store and manage data in a specific order, but they differ in how data is added and removed. Understanding these structures is fundamental for solving problems efficiently, particularly in algorithms and system design.

    We’ll cover:
    ✅ What a Stack is and how it follows the Last In, First Out (LIFO) principle
    ✅ What a Queue is and how it follows the First In, First Out (FIFO) principle
    ✅ Implementing stacks and queues using Python’s list or collections.deque
    ✅ Common operations on stacks (push, pop, peek) and queues (enqueue, dequeue)
    ✅ Use cases for stacks (e.g., function call stack, undo mechanisms)
    ✅ Use cases for queues (e.g., task scheduling, print queue)
    ✅ Implementing stacks and queues with custom classes for better control

    By the end of this lesson, you'll have a solid understanding of stacks and queues and be able to implement them in Python to solve real-world problems. Let’s get started with these fundamental data structures! ?

  • Building an ATM Machine Simulation in Python11:09

    In this lesson, you’ll create a simple ATM machine simulation using Python. This project will help you apply your knowledge of control flow, functions, and basic file handling to create an interactive system for users to perform typical ATM operations like checking balance, withdrawing money, and depositing funds.

    We’ll cover:
    ✅ Setting up an ATM interface with user input and interaction
    ✅ Implementing key ATM functions: balance check, deposit, withdrawal, and PIN validation
    ✅ Handling edge cases like insufficient funds or invalid PINs
    ✅ Storing and updating user account details using file handling or dictionaries
    ✅ Adding a simple loop for continuous interaction until the user exits
    ✅ Implementing basic error handling (e.g., invalid input, withdrawal limits)

    By the end of this lesson, you’ll have a functional ATM machine simulation and a deeper understanding of handling user input and managing simple banking operations in Python. Let’s build your own ATM machine! ?

  • Set and Dictionary Comprehension in Python10:06

    In this lesson, you'll learn how to use set and dictionary comprehensions in Python. These concise techniques allow you to create sets and dictionaries in a more efficient and readable way, improving the performance and clarity of your code.

    We’ll cover:
    ✅ Understanding set comprehensions and how they allow you to generate sets in a single line
    ✅ Using dictionary comprehensions to create dictionaries from existing data efficiently
    ✅ Syntax of set and dictionary comprehensions
    ✅ Practical examples of using comprehensions to filter, transform, and manipulate data
    ✅ Benefits of using comprehensions over traditional loops

    By the end of this lesson, you'll be comfortable using set and dictionary comprehensions to write cleaner, more efficient Python code. Let’s get started with these powerful tools! ?

  • Installing Jupyter Notebook in Python6:41

    In this lesson, you'll learn how to install Jupyter Notebook and set it up for your Python projects. Jupyter Notebook is an interactive environment that allows you to create and share documents containing live code, equations, visualizations, and explanatory text. It's widely used in data science, machine learning, and academic research.

    We’ll cover:
    ✅ Installing Jupyter Notebook using pip or Anaconda
    ✅ Launching Jupyter Notebook from the command line or Anaconda Navigator
    ✅ Navigating the Jupyter interface and creating a new notebook
    ✅ Running Python code and mixing it with markdown for documentation
    ✅ Saving, sharing, and exporting your notebooks in different formats (e.g., PDF, HTML)
    ✅ Best practices for organizing and structuring your notebooks

    By the end of this lesson, you’ll be able to set up Jupyter Notebook on your system and start using it to write and execute Python code in an interactive and organized way. Let’s get started with the installation! ?

  • Introduction to Flask in Python9:11

    In this lesson, you’ll learn the basics of Flask, a lightweight web framework for building web applications in Python. Flask is easy to learn and ideal for small to medium-sized projects, allowing you to quickly create web applications with minimal boilerplate code.

    We’ll cover:
    ✅ What Flask is and why it’s a popular choice for web development
    ✅ Setting up a basic Flask application
    ✅ Understanding the routing system in Flask and creating simple web pages
    ✅ Running the Flask server locally for testing

    By the end of this lesson, you’ll be able to create a simple web application using Flask and understand how to scale it for more complex projects. Let’s dive into Flask! ?

  • Introduction to Jinja2 in Python9:09

    In this lesson, you’ll learn about Jinja2, a powerful templating engine for Python that is often used with web frameworks like Flask. Jinja2 allows you to generate dynamic HTML pages by embedding Python-like expressions and control structures into your templates, making web development easier and more efficient.

    We’ll cover:
    ✅ What Jinja2 is and how it integrates with Flask for dynamic web pages
    ✅ Basic Jinja2 syntax, including variables and expressions
    ✅ Control structures in Jinja2 (loops, conditionals)
    ✅ Using filters to modify values in templates (e.g., formatting dates, strings)
    ✅ Template inheritance to create reusable base templates
    ✅ Rendering templates from Flask with render_template()
    ✅ Best practices for organizing and structuring Jinja2 templates

    By the end of this lesson, you’ll be able to use Jinja2 to create dynamic and reusable templates for your web applications. Let’s start templating with Jinja2! ?

  • Understanding HTTP Methods in Web Development9:19

    In this lesson, you'll learn about the core HTTP methods that are used in web development to handle requests and responses between clients and servers. Understanding these methods is crucial for building RESTful APIs and interacting with web applications.

    We’ll cover:
    ✅ An introduction to HTTP and the client-server model
    ✅ The four main HTTP methods:

    • GET: Retrieving data from the server

    • POST: Sending data to the server to create or update resources

    • PUT: Replacing a resource on the server

    • DELETE: Removing a resource from the server
      ✅ Understanding the difference between safe and unsafe methods
      ✅ How to use HTTP methods in web frameworks like Flask
      ✅ Implementing these methods in Flask routes and handling their requests
      ✅ Status codes associated with each HTTP method (e.g., 200, 404, 201)

    By the end of this lesson, you'll have a solid understanding of HTTP methods and how to use them to build dynamic, interactive web applications and APIs. Let’s dive into HTTP methods! ?

  • Flask Routing in Python14:06

    In this lesson, you’ll learn how routing works in Flask, which allows you to define URL patterns and associate them with Python functions (views) that respond to user requests. Routing is the foundation of any web application, enabling users to navigate through different pages by interacting with different URL endpoints.

    We’ll cover:
    ✅ What routing is and how Flask maps URLs to functions
    ✅ Creating basic routes with the @app.route() decorator
    ✅ Handling different HTTP methods (GET, POST) in routes
    ✅ Using dynamic routing to capture variables from the URL
    ✅ Implementing parameterized routes for more flexible URLs
    ✅ Returning different types of responses (HTML, JSON, redirects)
    ✅ Understanding route order and handling conflicts between routes
    ✅ Creating routes for handling forms, data submission, and more

    By the end of this lesson, you'll be comfortable defining and handling routes in Flask, enabling users to interact with your web application seamlessly. Let’s start routing with Flask! ?

  • Working with Static Files in Flask10:57

    In this lesson, you’ll learn how to handle static files in Flask, which are essential for adding assets like CSS, JavaScript, images, and fonts to your web applications. Static files are the building blocks of your frontend, allowing you to design and enhance the user interface of your Flask projects.

    We’ll cover:
    ✅ What static files are and how they differ from dynamic content
    ✅ The default static folder in Flask and how to configure it
    ✅ Accessing static files in your templates using url_for('static', filename='...')
    ✅ Organizing static assets (CSS, JS, images) within your project structure
    ✅ Linking and serving CSS stylesheets, JavaScript files, and image files in HTML templates
    ✅ Optimizing and compressing static files for better performance

    By the end of this lesson, you’ll know how to serve and manage static files in your Flask application, helping you build more interactive and visually appealing web applications. Let’s start working with static files in Flask! ?

  • Using Flash Messages in Flask18:04

    In this lesson, you’ll learn how to use flash messages in Flask, which provide a way to send one-time notifications or feedback to users, such as success, error, or informational messages. Flash messages are a common feature in web applications for notifying users about the result of an action, like form submission or login attempts.

    We’ll cover:
    ✅ What flash messages are and why they’re useful in web applications
    ✅ How to set flash messages using Flask’s flash() function
    ✅ Retrieving and displaying flash messages in HTML templates using get_flashed_messages()
    ✅ Handling different types of messages (success, error, warning) with custom styles
    ✅ Using custom CSS to style flash messages for better UI
    ✅ Ensuring flash messages only display once, preventing repetition on page reload
    ✅ Best practices for implementing flash messages in user interactions (e.g., form submissions, login attempts)

    By the end of this lesson, you’ll be able to add dynamic, user-friendly flash messages to your Flask web applications for effective user feedback. Let’s get started with flash messages! ?

  • Template Inheritance in Flask with Jinja210:07

    In this lesson, you'll learn about template inheritance in Flask using Jinja2, which allows you to create a base template that other templates can inherit from. This helps to avoid repetitive code, maintain consistent layouts, and streamline web application development by creating reusable components.

    We’ll cover:
    ✅ What template inheritance is and why it’s useful in web development
    ✅ How to define a base template using Jinja2’s {% block %} tags
    ✅ Using the extends and block tags to inherit and override content in child templates
    ✅ Structuring your Flask project with base templates and individual page templates
    ✅ Implementing reusable components like headers, footers, and navigation menus
    ✅ Organizing the HTML layout efficiently with minimal duplication
    ✅ Handling dynamic content in blocks while maintaining static structure
    ✅ Best practices for template inheritance in large web applications

    By the end of this lesson, you’ll be able to effectively use template inheritance to create modular, clean, and maintainable templates in your Flask application. Let’s start with template inheritance in Flask! ?

  • Handling File Uploads in Flask12:46

    In this lesson, you’ll learn how to handle file uploads in Flask, which allows users to upload files such as images, documents, or other media to your web application. File uploads are common in web apps like image galleries, profile picture settings, or document management systems.

    We’ll cover:
    ✅ How to set up the file upload functionality in Flask
    ✅ Configuring file upload settings (maximum file size, allowed file types)
    ✅ Handling file uploads using Flask’s request.files
    ✅ Saving uploaded files to the server using secure_filename()
    ✅ Displaying uploaded files (images or documents) back to users
    ✅ Handling potential errors (e.g., invalid file types, exceeding file size)
    ✅ Setting up a directory for uploaded files and ensuring proper security measures
    ✅ Using file upload forms and validating the files before saving

    By the end of this lesson, you’ll be able to implement a secure and efficient file upload feature in your Flask application, enabling users to upload and manage files with ease. Let’s dive into file uploads with Flask! ?

  • Understanding Sessions in Flask10:07

    In this lesson, you’ll learn how to use sessions in Flask to store data between requests. Flask’s session system allows you to persist user-specific data, such as login credentials or preferences, across different pages of your web application. Sessions are essential for creating a personalized experience for users without relying on external databases.

    We’ll cover:
    ✅ What sessions are and how they differ from cookies in web development
    ✅ Setting up Flask’s session object to store user data securely
    ✅ Using Flask’s secret key to sign session data for security
    ✅ Storing and retrieving data in the session across multiple requests
    ✅ Managing session data (e.g., adding, updating, deleting session values)
    ✅ Expiring or deleting sessions when users log out or after inactivity
    ✅ Using sessions for user authentication (e.g., login/logout system)

    By the end of this lesson, you’ll be able to manage user sessions in Flask, enabling you to build personalized web applications with user-specific data that persists across different pages. Let’s dive into Flask sessions! ?

  • Solving Practice Questions in Python Part 39:14

    In this lesson, you’ll focus on solving practical programming questions using Python. The goal is to enhance your problem-solving skills by tackling various types of exercises, from basic logic puzzles to more complex algorithmic challenges. This will help reinforce your understanding of Python syntax and concepts while developing your analytical thinking.

    We’ll cover:
    ✅ Approaching programming problems step by step
    ✅ Breaking down the problem and identifying the core logic
    ✅ Applying basic programming concepts (loops, conditionals, functions, data structures)
    ✅ Using Python’s built-in libraries to simplify solutions
    ✅ Tips and tricks for improving efficiency and readability
    ✅ Working with common interview-style questions and coding challenges

    By the end of this lesson, you’ll be more confident in solving programming challenges, and you’ll have improved your problem-solving skills. Let’s dive into some practice questions and start coding! ?

  • Solving Practice Questions in Python Part 410:45

    In this lesson, you’ll focus on solving practical programming questions using Python. The goal is to enhance your problem-solving skills by tackling various types of exercises, from basic logic puzzles to more complex algorithmic challenges. This will help reinforce your understanding of Python syntax and concepts while developing your analytical thinking.

    We’ll cover:
    ✅ Approaching programming problems step by step
    ✅ Breaking down the problem and identifying the core logic
    ✅ Applying basic programming concepts (loops, conditionals, functions, data structures)
    ✅ Using Python’s built-in libraries to simplify solutions
    ✅ Tips and tricks for improving efficiency and readability
    ✅ Working with common interview-style questions and coding challenges

    By the end of this lesson, you’ll be more confident in solving programming challenges, and you’ll have improved your problem-solving skills. Let’s dive into some practice questions and start coding! ?

  • Redirects and Error Handling in Flask11:25

    In this lesson, you’ll learn how to handle redirects and error handling in Flask. Redirecting users to different routes and managing errors are essential parts of building robust web applications. Flask provides built-in tools to handle both, ensuring that your application provides a smooth user experience even when things go wrong.

    We’ll cover:
    ✅ How to use redirects to send users to different routes within your application with the redirect() function
    ✅ Understanding the url_for() function to dynamically generate URLs for redirects
    ✅ Handling HTTP errors (e.g., 404 Not Found, 500 Internal Server Error) gracefully
    ✅ Implementing error handling with custom error pages using @app.errorhandler()
    ✅ Creating custom error messages for different types of errors, including handling 400, 404, 403, and 500 errors
    ✅ Managing user input errors and form validation using error handling in Flask
    ✅ Best practices for providing user-friendly error messages and redirects to improve the user experience

    By the end of this lesson, you’ll know how to implement redirects and error handling in your Flask application to create a smoother and more professional user experience. Let’s get started with redirects and error handling in Flask! ?

  • Web Forms in Flask with Flask-WTF13:28

    In this lesson, you’ll learn how to handle web forms in Flask using the Flask-WTF extension, which simplifies form creation, validation, and processing in Flask applications. Flask-WTF integrates WTForms with Flask, providing a powerful and flexible way to handle form submissions securely and efficiently.

    We’ll cover:
    ✅ What Flask-WTF is and why it’s useful for managing forms in Flask
    ✅ Installing and setting up Flask-WTF in your Flask project
    ✅ Creating forms with WTForms fields (e.g., text, email, password, select, radio buttons)
    ✅ Adding form validation rules (e.g., required fields, length checks, email validation)
    ✅ Handling form submission and processing data after the form is submitted
    ✅ Displaying validation errors to users when form fields are not properly filled out
    ✅ Best practices for organizing and structuring forms in Flask applications

    By the end of this lesson, you’ll be able to create secure, dynamic, and user-friendly web forms in Flask using Flask-WTF. Let’s dive into Flask forms! ?

  • Introduction to SQLAlchemy in Flask7:57

    n this lesson, you'll learn how to use SQLAlchemy in Flask, which is a powerful Object Relational Mapper (ORM) that allows you to interact with databases using Python objects. SQLAlchemy simplifies database queries, making it easier to perform CRUD (Create, Read, Update, Delete) operations in your Flask applications.

    We’ll cover:
    ✅ What SQLAlchemy is and why it's commonly used in Flask applications
    ✅ Installing and setting up SQLAlchemy in Flask
    ✅ Creating database models with SQLAlchemy and defining relationships (e.g., one-to-many, many-to-many)

  • Advanced SQLAlchemy Concepts in Flask (Part 2)18:33

    In this second part of our SQLAlchemy series, we’ll dive deeper into advanced SQLAlchemy concepts and techniques that will help you master database interactions in Flask. This session will focus on complex queries, relationships, and optimizations, empowering you to build more dynamic and efficient data-driven applications.

    By the end of this lesson, you'll have the tools and knowledge to handle complex database relationships, optimize performance, and manage transactions in Flask applications using SQLAlchemy. Let’s dive into advanced SQLAlchemy techniques! ?

  • Building a To-Do List Application with Flask8:01

    In this project-based lesson, you'll learn how to build a To-Do List application using Flask. This project will help you understand how to work with Flask, SQLAlchemy, HTML forms, and CRUD operations (Create, Read, Update, Delete) to manage tasks effectively.

    We’ll cover:
    ✅ Setting up a Flask project and configuring the environment
    ✅ Creating a database model using SQLAlchemy to store tasks
    ✅ Implementing Flask routes for adding, viewing, updating, and deleting tasks
    ✅ Using Flask-WTF forms to handle user input for tasks
    ✅ Displaying tasks dynamically in an HTML template using Jinja2
    ✅ Adding functionality to mark tasks as completed or delete them
    ✅ Implementing flash messages to show success or error notifications
    ✅ Styling the app with Bootstrap or custom CSS for a better user experience

    By the end of this lesson, you'll have a fully functional To-Do List app built with Flask that allows users to manage their daily tasks efficiently. Let’s start coding! ?

  • Building a TO-Do List Application with Flask Part 27:58

    In this project-based lesson, you'll learn how to build a To-Do List application using Flask. This project will help you understand how to work with Flask, SQLAlchemy, HTML forms, and CRUD operations (Create, Read, Update, Delete) to manage tasks effectively.

    We’ll cover:
    ✅ Setting up a Flask project and configuring the environment
    ✅ Creating a database model using SQLAlchemy to store tasks
    ✅ Implementing Flask routes for adding, viewing, updating, and deleting tasks
    ✅ Using Flask-WTF forms to handle user input for tasks
    ✅ Displaying tasks dynamically in an HTML template using Jinja2
    ✅ Adding functionality to mark tasks as completed or delete them
    ✅ Implementing flash messages to show success or error notifications
    ✅ Styling the app with Bootstrap or custom CSS for a better user experience

    By the end of this lesson, you'll have a fully functional To-Do List app built with Flask that allows users to manage their daily tasks efficiently. Let’s start coding! ?

  • 10 Rapid-Fire Round Questions in Python21:56
  • Day 100 - Let's Celebrate7:22

Requirements

  • Basic Computer Skills – No prior programming experience is needed, but familiarity with using a computer is helpful.
  • A Computer with Internet Access – You’ll need a Windows, macOS, or Linux system to install Python and run code.
  • Python Installed – Download and install Python (instructions will be provided in the course).
  • A Willingness to Learn – Patience and curiosity to practice coding daily for 100 days.

Description

Welcome to 100 Days of Python Programming—the ultimate course for beginners looking to master Python or anyone who wants to strengthen their programming foundation. Whether you're starting from scratch or looking to enhance your skills, this course will guide you through every step of your Python journey in a fun and structured way.

Over the next 100 days, you'll dive deep into Python's core concepts, including data types, loops, functions, object-oriented programming, and more. But this course isn’t just about theory! You’ll work on exciting, hands-on projects like building a to-do list app, a dynamic expense tracker, and even a real-time chat application. These projects will help you understand how to solve real-world problems and solidify your Python skills through practice.

Throughout the course, you'll also explore Python’s most popular libraries, including Pandas for data analysis, NumPy for numerical computations, and Flask for web development. You’ll learn how to use these libraries to create powerful applications and automate tasks.

But that's not all! We’ll also focus on developing your problem-solving skills and debugging strategies, helping you become a more efficient and confident programmer. By the end of the course, you’ll be able to write clean, functional Python code and tackle real-world challenges with ease.

Whether you're looking to switch careers, improve your coding skills, or build a portfolio of Python projects, this course is perfect for you. By completing this course, you'll not only understand Python inside and out, but you'll also be prepared for more advanced programming challenges.

Get ready for an exciting learning journey, 100 days of coding, creating, and growing your programming skills! Let’s get started!

Who this course is for:

  • Beginners in Python – Anyone new to programming who wants to learn Python from scratch.
  • Aspiring Developers – Students, job seekers, or career changers looking to build Python skills.
  • Self-Taught Programmers – Those who know some Python but want a structured learning path.
  • Tech Enthusiasts – Anyone interested in automating tasks, data analysis, or web development.