New: Complete Beginner's Guide to Coding is now available in Premium
Updated: Indian Govt Exam roadmaps now include salary breakdowns & timelines
Tip: Use the Career Hub to explore all career paths in one place
Tutorials Python Python Mini Projects

Python Mini Projects

Python

Let's build small projects that combine everything you've learned. These are great for your resume!

Projects Covered

  • Simple Calculator
  • Student Grade Manager
  • Number Guessing Game
  • Expense Tracker
Example — PYTHON
# PROJECT 1: Simple Calculator
def calculator():
    print("=== Simple Calculator ===")
    a = float(input("Enter first number: "))
    op = input("Operator (+, -, *, /): ")
    b = float(input("Enter second number: "))
    ops = {
        "+": lambda a, b: a + b,
        "-": lambda a, b: a - b,
        "*": lambda a, b: a * b,
        "/": lambda a, b: a / b if b != 0 else "Error: Division by zero"
    }
    result = ops.get(op, lambda a, b: "Invalid operator")(a, b)
    print(f"Result: {result}")
# PROJECT 2: Student Grade Manager
class GradeManager:
    def __init__(self):
        self.students = {}
    def add_student(self, name, marks):
        self.students[name] = marks
    def get_average(self):
        if not self.students:
            return 0
        return sum(self.students.values()) / len(self.students)
    def get_topper(self):
        return max(self.students, key=self.students.get)
    def display_all(self):
        print("\n📊 Student Report")
        print("=" * 30)
        for name, marks in sorted(self.students.items(), key=lambda x: x[1], reverse=True):
            grade = "A+" if marks >= 90 else "A" if marks >= 75 else "B" if marks >= 60 else "C"
            print(f"{name}: {marks} marks (Grade {grade})")
        print(f"\nAverage: {self.get_average():.1f}")
        print(f"Topper: {self.get_topper()} 🏆")
gm = GradeManager()
gm.add_student("Rahul", 85)
gm.add_student("Priya", 92)
gm.add_student("Amit", 78)
gm.add_student("Sara", 95)
gm.display_all()
# PROJECT 3: Password Generator
import random
import string
def generate_password(length=12):
    chars = string.ascii_letters + string.digits + "!@#$%&*"
    password = [
        random.choice(string.ascii_uppercase),
        random.choice(string.ascii_lowercase),
        random.choice(string.digits),
        random.choice("!@#$%&*"),
    ]
    password += [random.choice(chars) for _ in range(length - 4)]
    random.shuffle(password)
    return "".join(password)
print(f"\n🔐 Generated Password: {generate_password()}")
print(f"🔐 Short Password: {generate_password(8)}")
Result
📊 Student Report
==============================
Sara: 95 marks (Grade A+)
Priya: 92 marks (Grade A+)
Rahul: 85 marks (Grade A)
Amit: 78 marks (Grade A)

Average: 87.5
Topper: Sara 🏆

🔐 Generated Password: K7m#pR2x&bNq
🔐 Short Password: R3k!mPx9