Intermediate Python Projects

Apply your skills to real-world mini projects

1. To-Do List App (File Handling + OOP)

Ek simple CLI app jisme user tasks add/remove/mark complete kar sakta hai. Data ko tasks.txt file me save karein.

class TodoApp:
    def __init__(self, filename="tasks.txt"):
        self.filename = filename

    def add_task(self, task):
        with open(self.filename, "a") as f:
            f.write(task + "\n")

    def show_tasks(self):
        with open(self.filename, "r") as f:
            for i, line in enumerate(f, start=1):
                print(f"{i}. {line.strip()}")

app = TodoApp()
app.add_task("Finish Python project")
app.show_tasks()

2. Weather Fetcher (API + JSON)

API requests ka use karke weather data fetch karein (OpenWeatherMap API). JSON parsing seekhenge.

import requests

API_KEY = "your_api_key_here"
city = "Delhi"
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={API_KEY}&units=metric"

response = requests.get(url)
data = response.json()

print("Temperature:", data["main"]["temp"], "°C")

3. Multi-threaded Downloader

Ek program jo multiple files ek saath download kare using threading.

import threading, requests

def download_file(url, filename):
    r = requests.get(url)
    with open(filename, "wb") as f:
        f.write(r.content)
    print(f"Downloaded {filename}")

urls = [
    ("https://example.com/file1.jpg", "file1.jpg"),
    ("https://example.com/file2.jpg", "file2.jpg")
]

threads = []
for url, fname in urls:
    t = threading.Thread(target=download_file, args=(url, fname))
    threads.append(t)
    t.start()

for t in threads:
    t.join()

4. Simple Chatbot (Functions + Dictionaries)

Ek basic chatbot jo keyword matching use kare responses ke liye.

responses = {
    "hi": "Hello! Kaise ho?",
    "bye": "Goodbye! Fir milte hain.",
    "python": "Python ek powerful programming language hai."
}

def chatbot():
    while True:
        msg = input("You: ").lower()
        if msg == "exit":
            break
        print("Bot:", responses.get(msg, "Mujhe samajh nahi aaya."))

chatbot()

5. Expense Tracker (Modules + CSV)

Ek CLI app jo expenses ko CSV file me record kare aur monthly report generate kare.

import csv
from datetime import datetime

def add_expense(amount, category):
    with open("expenses.csv", "a", newline="") as f:
        writer = csv.writer(f)
        writer.writerow([datetime.now().date(), amount, category])

def view_expenses():
    with open("expenses.csv", "r") as f:
        reader = csv.reader(f)
        for row in reader:
            print(row)

add_expense(200, "Food")
view_expenses()

Next Steps

Ab aap in projects me aur features add karke practice kar sakte ho — jaise GUI (Tkinter), database (SQLite), ya Flask/Django se web app banana.