← All posts

95 Python Projects for Beginners to Advanced

Completing Python projects is one of the most effective ways to learn the language. Projects force you to apply what you learn immediately, which means you actually retain it.

This list has 95 projects across every skill level, from beginner fundamentals to fuller portfolio projects using newer tools like local LLMs, RAG pipelines, and AI APIs. Every project here assumes Python 3, and any currently supported release (3.11 or newer) will run them.

Table of Contents

Beginner Python Projects

Start here if you've learned some syntax and want to put it to work.

Assumes basic familiarity with Python syntax: variables, loops, and functions. Most projects can be completed in a few hours.

1. Building an Interactive Word Game

Building an Interactive Word Game

Build a fully functional word-guessing game using core Python concepts.

2. Profitable App Profiles for the App Store and Google Play Markets

Profitable App Profiles for the App Store and Google Play Markets

Work as a data analyst for a company that builds mobile apps. You'll use Python to analyze real app market data to find app profiles that attract the most users.

3. Exploring Hacker News Posts

Exploring Hacker News Posts

Use Python string manipulation, OOP, and date handling to analyze trends driving post popularity on Hacker News, a popular technology site.

4. Exploring eBay Car Sales Data

Exploring eBay Car Sales Data

Use Python to work with a scraped dataset of used cars from Kleinanzeigen, the German classifieds site that was called eBay Kleinanzeigen when this dataset was scraped.

5. Building a Text-Based Garden Simulator

Building a Text-Based Garden Simulator

Build an interactive game where players plant, tend, and harvest virtual crops. You'll put object-oriented programming, error handling, and randomness to work to bring the world to life.

6. Building a Food Ordering App

Building a Food Ordering App

Create a functional application using Python dictionaries, loops, and functions to build an interactive system for viewing menus, modifying carts, and placing orders.

7. Find out How Much Money You've Spent on Amazon

Find out How Much Money You've Spent on Amazon

Dig into your own spending habits with this beginner-level tutorial.

8. Analyze Your Personal Netflix Data

Analyze Your Personal Netflix Data

A beginner-to-intermediate tutorial that gets you working with your own personal dataset.

9. Analyze Survey Data

Analyze Survey Data

This walk-through shows you how to set up Python and filter survey data from any dataset (or just use the sample data linked in the article).

10. Rock, Paper, Scissors

Rock, Paper, Scissors

Learn Python with a simple-but-fun game that everybody knows.

11. Build a Text Adventure Game

Build a Text Adventure Game

A classic Python beginner project (it also pops up in Learn Python the Hard Way, now a paid course) that'll teach you many basic game setup concepts useful for more advanced games.

12. Password Generator

Password Generator

Build a random 8-character password in Python. The linked challenge keeps its full solution behind a paid membership, so treat it as a spec to code against rather than a walkthrough. Once the basic version works, switch from the random module to the secrets module and push the length well past 8 characters.

13. Fun Fact Generator

Fun Fact Generator

Create a small app that fetches and displays a random fun fact from a public API every time it runs. Quick to build, and it gets you comfortable making HTTP requests.

14. Morse Code Translator

Morse Code Translator

Build a tool that converts plain text into Morse code and back using a dictionary lookup. Short enough to finish in an afternoon, and teaches string iteration and dictionary lookups in a memorable way.

15. Building a Calculator App

Building a Calculator App

Build a simple command-line calculator that asks users for two numbers and an operation, then prints the result. This easy project helps you practice functions, user input, conditionals, and basic arithmetic.

16. Building a To-Do List App

Building a To-Do List App

Build a simple console-based to-do list where users can add, view, and remove tasks from a menu. This beginner project helps you practice lists, loops, conditionals, user input, and basic error handling.

17. Automating File Organization

Automating File Organization

Use Python to automatically sort files into folders based on type, name, or date.

18. File Search Tool

File Search Tool

Create a tool that searches your computer for files based on name or type. You'll be working with directories and file traversal to pull it off.

19. Countdown Timer

Countdown Timer

Use Python's time module to build a timer that counts down from a user-specified number of seconds. Good for getting comfortable with while loops and basic time manipulation.

20. Web Scraping Basics with BeautifulSoup

Web Scraping Basics with BeautifulSoup

Use BeautifulSoup and requests to scrape news headlines and save them to a CSV. A great introduction to pulling real data from the web.

21. Expense Tracker with SQLite

Expense Tracker with SQLite

Build a simple app to log income and expenses to a local database. You'll actually want to use this one, though it's a bit harder than most beginner projects.

22. Currency Converter

Currency Converter

Build a tool that takes an amount and two currency codes and converts between them using a free exchange rate API. A low-pressure first taste of working with APIs and handling JSON data.

23. Trivia Quiz Game

Trivia Quiz Game

Build a multiple-choice quiz that asks the user a series of questions, checks their answers, and displays a score at the end. You'll practice dictionaries, conditionals, and input/output flow all at once.

24. Banking Program

Banking Program

Simulate a basic bank account with deposits, withdrawals, and balance checks. Useful for learning functions, and the linked tutorial walks you through the whole thing.

Beginner Python Project Ideas

Looking for inspiration rather than step-by-step instructions? These are ideas without walkthroughs, so you'll be figuring out the how yourself.

25. Create a Text Cipher Generator

Create a Text Cipher Generator

Take text as input, replace each letter with another letter, and output the "encoded" message.

26. Build a Countdown Calculator

Build a Countdown Calculator

Write code that takes two dates as input and calculates the amount of time between them. A great way to familiarize yourself with Python's datetime module.

27. Word Counter

Word Counter

Write a program that asks the user for a paragraph, splits it into words, and counts how often each word appears. This is a clean beginner project for practicing strings, loops, dictionaries, and basic text processing.

28. Write a Sorting Method

Write a Sorting Method

Given a list, can you write some code that sorts it alphabetically or numerically? Start by comparing two items at a time, then loop through the list until everything is in order. Python has this built in, but try to do it without using the sort() function.

29. Build an Interactive Quiz Application

Build an Interactive Quiz Application

Which Avenger are you? Build a personality quiz that asks users some questions, stores their answers, and calculates a personalized result.

30. Make a Temperature/Measurement Converter

Make a Temperature/Measurement Converter

Write a script that converts Fahrenheit to Celsius and back, or inches to centimeters. How far can you take it?

31. Build a Counter App

Build a Counter App

Take your first steps into UI by building a simple app that counts up by one each time a user clicks a button. Try building it with Tkinter or PyQt.

32. Build a Number-Guessing Game

Build a Number-Guessing Game

Think of it as a text adventure, but with numbers. How would you add a "Get a Hint" option?

33. Build an Alarm Clock

Build an Alarm Clock

This is borderline beginner/intermediate, but worth attempting. Can you create different alarms? A snooze function?

Intermediate Python Projects

Once the fundamentals feel comfortable, the next step is mostly about scale. Bigger datasets, more moving parts, and applications with more than one job to do.

Assumes comfort with Python fundamentals and some experience with libraries like pandas or requests.

34. Predicting Heart Disease

Predicting Heart Disease

Use a UCI heart disease dataset to build a model that predicts patient risk. A more interesting first model than the usual toy datasets.

35. Analyzing Accuracy in Data Presentation

Analyzing Accuracy in Data Presentation

Step into the role of a data journalist to analyze movie ratings data and determine if there's evidence of bias in Fandango's rating system.

36. Finding Heavy Traffic Indicators on I-94

Finding Heavy Traffic Indicators on I-94

Use pandas' plotting functionality alongside Jupyter Notebook to quickly visualize data and identify what drives heavy traffic on I-94.

37. Clean and Analyze Employee Exit Surveys

Clean and Analyze Employee Exit Surveys

Work with exit surveys from employees of the Department of Education in Queensland, Australia. Play the role of a data analyst to uncover insights about why employees resign.

38. Credit Card Customer Segmentation

Credit Card Customer Segmentation

Play the role of a data scientist at a credit card company to segment customers into groups using K-means clustering in Python, allowing the company to tailor strategies for each segment.

39. Developing a Dynamic AI Chatbot

Developing a Dynamic AI Chatbot

Create your own AI-powered chatbot that can take on different personalities, track conversation history, and provide coherent responses.

40. Hangman

Hangman

A childhood classic that makes for a satisfying intermediate build.

41. QR Code Generator

QR Code Generator

A small tool that solves a real problem in 30 to 90 minutes, which is hard to beat for building confidence quickly.

42. Snake

Snake

More involved than most intermediate projects, but a classic (and surprisingly fun) game to build and play.

43. Tic-Tac-Toe

Tic-Tac-Toe

Build the classic two-player game in the command line, with a printed board and win detection. One of the best projects for practicing lists, loops, nested conditionals, and basic game logic all at once.

44. Tetris

Tetris

Recreate the iconic falling-block puzzle game using Python and the Pygame library. More involved than most intermediate projects, but dedicated tutorials walk you through every step.

45. Creating a Portfolio Backend with Django

Creating a Portfolio Backend with Django

Build the backend for a personal portfolio website using Python. You'll learn how to serve content, handle requests, and structure a web application.

46. Use Python to Build a Discord Bot

Use Python to Build a Discord Bot

More advanced than most intermediate projects, but a practical way to learn how Python interacts with real users and messages. You'll work with APIs, event-driven programming, and authentication.

47. Building a Notes App

Building a Notes App

Build a web-based notes app with Django where users can create and manage notes. This project introduces models, views, authentication, and basic web app structure.

48. Building a Text Editor

Building a Text Editor

Create a simple text editor with open, edit, and save functionality. You'll learn how UI components and file operations fit together.

49. Analyze Your Personal Facebook Data with Python

Analyze Your Personal Facebook Data with Python

Find out how much time you're actually spending on Facebook. Beginner-to-intermediate, and you'll be working with your own exported data.

50. Sending Automated Emails

Sending Automated Emails

Build a Python script that sends emails automatically using SMTP. It's your first taste of talking to an external service on a schedule. Note that email providers like Gmail require app passwords or OAuth setup (the RealPython tutorial linked above covers this).

51. Building a Weather App with an API

Building a Weather App with an API

Use Python to fetch real-time weather data from an API and display it in a simple app. Practice sending requests, handling JSON responses, and working with external data.

52. Automating File Backups

Automating File Backups

Create a script that automatically backs up important files and folders. The interesting part is making it reliable enough that you'd trust it with files you care about.

53. Blackjack Game

Blackjack Game

Build a fully playable card game with betting logic, hand evaluation, and a simple UI. It'll test your grasp of OOP and edge cases.

54. OCR: Extract Text from Images

OCR: Extract Text from Images

Use OpenCV and Tesseract to pull text out of images automatically. Computer vision without training your own model.

55. Streamlit ML Web App

Streamlit ML Web App

Turn a machine learning model into an interactive web app where users can tweak settings and see results in real time. No front-end experience needed.

56. Morning Briefing Bot

Morning Briefing Bot

Build a scheduled weather alert that fetches forecast data from an API and sends it by email.

57. Astronomy Picture of the Day Wallpaper Setter

Astronomy Picture of the Day Wallpaper Setter

Fetch NASA's free daily astronomy image and set it as your desktop wallpaper automatically. Only compatible with Windows. Grab a free API key from api.nasa.gov before you start, since the bundled demo key is capped at 30 requests per hour.

58. Auto-Flashcard Generator

Auto-Flashcard Generator

Paste in lecture notes, send them to an LLM, and get back question-and-answer cards exported as a CSV or Anki-compatible file.

59. Automating Screenshot Capture

Automating Screenshot Capture

Create a script that takes screenshots automatically at intervals. It's a short way into OS-level automation and multithreading.

60. Lecture and Meeting Transcriber

Lecture and Meeting Transcriber

Send an audio file to a speech-to-text API and get back a clean, searchable transcript.

61. Movie Recommendation Engine

Movie Recommendation Engine

Build a movie recommendation engine from ratings data using pandas and correlation, then return movies similar to a selected title.

Intermediate Python Project Ideas

Challenge yourself without following a tutorial. You pick the approach and the scope.

62. Build an Upgraded Text Cipher Generator

Build an Upgraded Text Cipher Generator

Starting with the beginner project, see what you can do to make it more sophisticated. Can you generate different kinds of codes? Can you create a "decoder" app that reads encoded messages if the user inputs a secret key?

63. Make Your Tic-Tac-Toe Game Clickable

Make Your Tic-Tac-Toe Game Clickable

This time, build it with an actual UI you click on to claim open squares. Challenge: can you write a simple "AI" opponent for a human player to play against?

64. Scrape Some Data to Analyze

Scrape Some Data to Analyze

Pull public data from a site that allows it, or use an official API when one is available. If you learn about web scraping, you can collect some really unique datasets.

65. Build a Clock Website

Build a Clock Website

How close can you get it to real-time? Can you implement different time zone selectors and add a "countdown calculator" to measure lengths of time?

66. Automate Some of Your Job

Automate Some of Your Job

Many jobs have some kind of repetitive process you can automate. This intermediate project could even lead to a promotion.

67. Automate Your Personal Habits

Automate Your Personal Habits

Want to remember to stand up once every hour? How about generating unique workout plans based on your goals and preferences? There are plenty of simple apps you can build to automate or enhance different aspects of your life.

68. Create a Simple Web Browser

Create a Simple Web Browser

Build a simple UI that accepts URLs and loads webpages. PyQt5 or PyQt6 will be helpful here. Can you add a "back" button, bookmarks, and other features?

69. Build a Typing Tester

Build a Typing Tester

Show the user some text, then challenge them to type it quickly and accurately. Time them and score them on accuracy.

70. Create a "Site Updated" Notification System

Create a "Site Updated" Notification System

Write a Python script that automatically checks a given URL for updates and notifies you when it identifies one. Keep the time interval between checks reasonable.

71. Build a Wikipedia Explorer

Build a Wikipedia Explorer

The app displays a random Wikipedia page. Can you add user-selected categories? Or a "rabbit hole" version where each article is randomly selected from the links in the previous one?

Advanced Python Projects

The projects here move into machine learning, large-scale data processing, automation, and system design.

Assumes solid Python experience and familiarity with concepts like OOP, APIs, and data structures.

72. Analyzing Wikipedia Pages

Analyzing Wikipedia Pages

Build a simplified grep utility that searches over 54 MB of Wikipedia articles using Python's multiprocessing library and the MapReduce framework. Hands-on experience with parallel computing and big data processing.

73. Implementing a Key-Value Database

Implementing a Key-Value Database

Extend a B-tree implementation into a fully functional key-value database that supports range queries and dictionary-like syntax.

74. Building a Handwritten Digits Classifier

Building a Handwritten Digits Classifier

Build an image classifier that recognizes handwritten digits, comparing k-nearest neighbors to neural networks with one, two, and three hidden layers.

75. Detect Pneumonia Using X-Ray Images with CNNs and Transfer Learning

Detect Pneumonia Using X-Ray Images with CNNs and Transfer Learning

Build convolutional neural networks from scratch with Keras, then apply transfer learning with pre-trained models to diagnose pneumonia from chest X-rays.

76. Build a Speech Recognition and Summarization System

Build a Speech Recognition and Summarization System

Combine the Vosk speech-to-text library with Hugging Face summarization models to build a system that automatically transcribes and summarizes audio files.

77. Building a User Authentication System

Building a User Authentication System

Build a learning version of a full-stack authentication system with a Python backend and a Next.js frontend. This introduces login flows, password handling, tokens, and user management.

78. Building a Log Analyzer

Building a Log Analyzer

Build an AI-assisted log analyzer that reads log files and sends them to a local Ollama model for analysis.

79. RAG Chatbot

RAG Chatbot

Build a chatbot that retrieves facts from a knowledge base before generating a response. You'll work with vector stores, semantic search, and LlamaIndex.

80. AI Document Summarizer CLI

AI Document Summarizer CLI

Build a command-line tool that takes any text file as input and returns a clean summary using Langchain + Ollama.

81. Customer Review Sentiment Classifier

Customer Review Sentiment Classifier

Feed a CSV of customer reviews into Hugging Face Inference Providers and automatically classify each one as positive, neutral, or negative.

82. Local LLM API with Ollama

Local LLM API with Ollama

Run an open-weight LLM entirely on your own machine and interact with it through Ollama's built-in API endpoint. No cloud costs, no data leaving your device.

83. Multi-Agent AI App

Multi-Agent AI App

Build a Streamlit workout app that uses Langflow to orchestrate the AI workflows that generate nutrition targets and answer questions based on a user profile. This project introduces Streamlit forms, persistent user data, prompt flows, and connecting a Python app to an AI backend. Note that the tutorial also stores data in DataStax Astra DB, which needs its own free account.

84. MCP Client

MCP Client

Build a Python MCP client that connects an AI application to external tools through the Model Context Protocol. This project introduces MCP basics, client-server communication, and how AI apps can call structured tools.

85. American Sign Language (ASL) Recognizer

American Sign Language (ASL) Recognizer

Train a deep learning model to classify ASL hand signs from images. Computer vision that doubles as an accessibility tool.

86. Job Application Autofill Bot

Job Application Autofill Bot

Build a browser automation script with Playwright that helps fill out job application forms using your resume data. This project introduces browser automation, form handling, file uploads, and working with structured personal data.

Advanced Python Project Ideas

Need a difficult project to stretch your skills? These expect you to combine several areas at once, and most of them don't have a tidy finish line.

87. Build a Stock Market Prediction App

Build a Stock Market Prediction App

You'll need a source of stock market data and some machine learning and data analytics skills. Many people have tried this, so there's plenty of source code out there to learn from.

88. Program a Robot

Program a Robot

This requires some hardware, but affordable options abound. Definitely look into Raspberry Pi if you're not already thinking along those lines.

89. Build an Image Recognition App

Build an Image Recognition App

Once you've got handwriting recognition down, try extending to multi-class object recognition, facial detection, or real-time classification from a webcam feed.

90. Make a Price Prediction Model

Make a Price Prediction Model

Select an industry or product that interests you and build a machine learning model that predicts price changes.

91. Create an Interactive Map

Create an Interactive Map

Your map can display whatever you'd like, whether that's bird migrations, traffic data, or crime reports. Just make it interactive. How far can you take it?

92. Create a Real-Time Chat Application

Create a Real-Time Chat Application

It should support multiple users communicating in real time. You'll be dealing with sockets, concurrency, and message handling.

93. Build a Distributed Web Crawler

Build a Distributed Web Crawler

The system should crawl multiple websites and collect data efficiently. You'll need concurrency, task scheduling, and a plan for collecting data at scale. Make sure to respect each site's robots.txt and keep request rates reasonable to avoid overloading servers.

94. Develop a Reinforcement Learning Agent

Develop a Reinforcement Learning Agent

Train an agent to solve a problem (like playing a game) using reinforcement learning techniques.

95. Build a Full-Stack Web App with Authentication and APIs

Build a Full-Stack Web App with Authentication and APIs

You'll need a backend, database, authentication system, and API endpoints. It pulls most of the advanced concepts on this list into one system.

Next Steps

The best Python project is the one you finish. Here's how to pick one without overthinking it.

Want a data or analytics job? Start with Exploring eBay Car Sales Data or Finding Heavy Traffic Indicators on I-94. Both are pandas-first, involve real messy data, and produce the kind of portfolio piece a hiring manager recognizes. After one of those, add SQL and build a second project that combines the two.

If the goal is automating something at work, start with Automating File Organization or Sending Automated Emails. Both are completable in an afternoon and immediately useful, which means you'll actually finish them. Once you've shipped one automation, the jump to scraping or scheduling tasks feels small.

For machine learning, don't start with a neural network. Start with Predicting Heart Disease. It's a clean dataset, a clear problem, and it teaches the scikit-learn workflow you'll use for every model you build after. Add PyTorch once scikit-learn feels comfortable.

Want to build something people can actually use? Start with Building a Weather App with an API or Streamlit ML Web App. Both produce something you can show someone who isn't a developer, which matters more than it sounds when you're trying to stay motivated.

Still not sure? Build the Interactive Word Game. It covers loops, functions, conditionals, and user input, the four things that show up in every other project on this list. Finish it, put it on GitHub, and you'll know what you want to build next.

Mike Levy

Written by

Mike Levy

Mike is a life-long learner who is passionate about mathematics, coding, and teaching. When he's not sitting at the keyboard, he can be found in his garden or at a natural hot spring.

Join 1M+ data learners on Dataquest.

  1. 1

    Create a free account

  2. 2

    Choose a learning path

  3. 3

    Complete exercises and projects

  4. 4

    Advance your career