Searching for python projects for beginners with source code that you can actually build this week? You found them. Tutorials teach you syntax, but projects teach you programming — and nothing impresses employers like a GitHub profile full of finished work. Below are 15 easy python projects, ordered from simplest to most challenging, each with the key concepts you will learn and starter source code to get you going.
Why These Python Projects for Beginners With Source Code Actually Work
Most beginners get stuck in “tutorial hell”: watching videos, copying code, and never building anything alone. These beginner python projects break that cycle because each one is:
- Small enough to finish in an afternoon or weekend — momentum matters more than size.
- Complete, with working source code you can run, study, and extend.
- Skill-stacking: each project reuses concepts from the previous ones, so knowledge compounds.
Build all 15 and you will have touched variables, loops, functions, file handling, APIs, and basic OOP — the core of Python. If you have not written any Python yet, start with our 10 Python automation scripts for beginners to get comfortable with the basics first.
How to Use This List
- Pick a project at or just below your current level.
- Type the code yourself — do not copy-paste. Typing builds muscle memory.
- Run it, break it, fix it. Then add one feature of your own design.
- Push finished projects to GitHub. Future employers will look.
15 Easy Python Projects for Beginners
1. Number Guessing Game
The classic first project. The computer picks a random number, you guess, and it tells you “too high” or “too low”. You will learn random, input(), while loops, and conditionals.
import random
secret = random.randint(1, 100)
attempts = 0
while True:
guess = int(input("Guess a number (1-100): "))
attempts += 1
if guess < secret:
print("Too low!")
elif guess > secret:
print("Too high!")
else:
print(f"Correct! You got it in {attempts} tries.")
break
2. Command-Line To-Do List
Build a to-do app that runs in the terminal: add tasks, list them, mark them done. This teaches lists, functions, and a simple menu loop — the skeleton of nearly every app.
tasks = []
while True:
print("\n1. Add 2. List 3. Done 4. Quit")
choice = input("Choose: ")
if choice == "1":
tasks.append({"task": input("Task: "), "done": False})
elif choice == "2":
for i, t in enumerate(tasks, 1):
mark = "x" if t["done"] else " "
print(f"{i}. [{mark}] {t['task']}")
elif choice == "3":
n = int(input("Task number: ")) - 1
tasks[n]["done"] = True
elif choice == "4":
break
Extend it: save tasks to a file with json.dump so they survive restarts — file handling is a core skill our automation scripts guide covers in depth.
3. Simple Calculator
A calculator with add, subtract, multiply, and divide teaches functions and error handling (what happens when the user divides by zero?). Wrap the division in try/except ZeroDivisionError and you have learned defensive programming.
4. Rock, Paper, Scissors
Play against the computer. This easy python project is perfect for practicing dictionaries to map choices to outcomes:
import random
choices = ["rock", "paper", "scissors"]
beats = {"rock": "scissors", "paper": "rock", "scissors": "paper"}
you = input("rock, paper, or scissors? ").lower()
cpu = random.choice(choices)
print(f"Computer chose {cpu}.")
if you == cpu:
print("Tie!")
elif beats[you] == cpu:
print("You win!")
else:
print("Computer wins!")
5. Password Generator
Generate strong random passwords with the secrets module. We built a full version of this in our automation scripts article — rebuild it here from memory as practice, then add options for length and symbols.
6. Quiz Game
Store questions in a list of dictionaries, loop through them, track the score. Great practice with data structures — and you can theme it on anything you love, from Python trivia to football.
questions = [
{"q": "What keyword defines a function in Python?", "a": "def"},
{"q": "Which module generates random numbers?", "a": "random"},
]
score = 0
for item in questions:
if input(item["q"] + " ").strip().lower() == item["a"]:
print("Correct!")
score += 1
else:
print(f"Wrong — the answer is {item['a']}.")
print(f"Final score: {score}/{len(questions)}")
7. Countdown Timer
Ask for minutes, count down in the terminal with time.sleep(). Simple, but it teaches you time handling — and you can reuse it as a study timer.
8. Weather App With a Real API
Your first project that talks to the internet: fetch live weather data from a free API and display it nicely. APIs are a must-have skill, so we wrote a complete step-by-step tutorial: how to build a weather app in Python using an API. Follow it, then customize the output format.
9. Expense Tracker
Log expenses to a CSV file, then calculate totals by category. This python mini project combines input(), the csv module, and basic math — and you end up with a tool you might actually use every day.
import csv
from pathlib import Path
file = Path("expenses.csv")
if not file.exists():
file.write_text("date,category,amount\n")
category = input("Category: ")
amount = float(input("Amount: "))
with file.open("a") as f:
f.write(f"2026-10-11,{category},{amount}\n")
total = sum(float(row[2]) for row in
csv.reader(file.read_text().splitlines()[1:]))
print(f"Total spent: ${total:.2f}")
10. Headline Web Scraper
Download a webpage with requests and extract headlines. Web scraping opens the door to data collection projects, price trackers, and research automation. Start with the scraper in our Python automation scripts guide, then point it at a site you care about.
11. Tic-Tac-Toe (Two Players)
A 3×3 board stored as a list, turns alternating between X and O, win detection after each move. This project teaches 2D data representation and game logic — harder than it looks, and very satisfying to finish.
12. Mad Libs Generator
Ask the user for nouns, verbs, and adjectives, then plug them into a funny story template with f-strings. Silly, but excellent string-manipulation practice — and a great first project to show friends.
13. File Organizer
Sort a messy folder into subfolders by file extension. This is one of the most practical python mini projects you can build, and we provide a complete working version in our automation scripts for beginners article. Rebuild it yourself, then add a “dry run” mode that only prints what would move.
14. Dice Rolling Simulator
Simulate rolling any number of dice with any number of sides. Add ASCII-art dice faces for fun. Short, sweet, and perfect for practicing functions with parameters and return values.
import random
def roll(sides=6, count=2):
return [random.randint(1, sides) for _ in range(count)]
dice = roll()
print(f"You rolled: {dice} (total: {sum(dice)})")
15. Alarm Clock
The capstone: ask for a wake-up time, compare it against the current time in a loop with the datetime module, and play a sound (or print a big message) when it matches. It combines loops, time handling, and user input — everything from projects 1–14 in one place.
Tips for Actually Finishing Your Beginner Python Projects
- Finish before you perfect. A working guessing game beats a half-built “AI chatbot” every time. You can always improve projects later.
- Read error messages. Python’s tracebacks tell you the exact file, line, and problem. Learning to read them is a genuine superpower — see the official errors tutorial for the full picture.
- Change one thing at a time. Add a feature, run the code, confirm it works, then add the next. Debugging ten changes at once is miserable.
- Explain your code out loud. The “rubber duck” technique — describing each line to an inanimate object — catches bugs your eyes skip.
- Publish your code. Put every finished project on GitHub with a short README. Our coding roadmap explains how a project portfolio accelerates your first job hunt.
What’s Next
Completing these python projects for beginners with source code takes you from “I know some syntax” to “I can build things” — the most important leap in learning to code. To keep growing, automate your daily computer tasks with our 10 Python automation scripts, then tackle a real API project with our weather app tutorial. Still mapping out your learning path? Our complete beginner roadmap for 2026 shows you exactly what to learn next.