Reference library

Python Code Samples

Easy snippets you can copy, study, and run in the browser editor.

276 matches
Comprehensions & generators easy

Generate UUID4 Values with a Python Generator

This code defines a generator function that yields mock UUID4 values, allowing you to stream unique identifiers one at a time.

uuid generators streaming
Python
import uuid

def generate_uuids(count=5):
    """Generate a stream of mock UUID4 values."""
    for _ in range(count):
        yield uuid.uuid4()

if __name__ == "__main__":
    # Generate and print 5 UUIDs
    for uid in generate_uuids(5):
        print(uid)
15 0 Open
Comprehensions & generators easy

Generator Function to Yield an Infinite Counter in Python

This code demonstrates a generator function that yields an infinite sequence of integers starting from a given value, allowing lazy, memory-efficient iteration.

generators infinite sequences yield
Python
def infinite_counter(start=0):
    count = start
    while True:
        yield count
        count += 1

if __name__ == "__main__":
    counter = infinite_counter(5)
    for _ in range(5):
        print(next(counter))
15 0 Open
Comprehensions & generators easy

How to Close a Generator and Handle GeneratorExit in Python

This Python code demonstrates how to explicitly close a generator using the close() method and handle the GeneratorExit exception through a finally block to run cleanup logic.

generators generator-exit close
Python
def countdown(n):
    try:
        while n > 0:
            yield n
            n -= 1
    finally:
        print(f"Generator closed after countdown completed")


if __name__ == "__main__":
    gen = countdown(5)
    print(next(gen))
    print(next(gen))
    gen.close()
    print("Generator closed explicitly")
13 0 Open
Comprehensions & generators easy

How to Compress a Generator with a Boolean Mask in Python

Filters items from a generator based on a parallel boolean mask, yielding only the items where the mask is True.

generators zip filter
Python
def compress(generator, mask):
    for item, keep in zip(generator, mask):
        if keep:
            yield item


if __name__ == "__main__":
    data = [1, 2, 3, 4, 5]
    mask = [True, False, True, False, True]
    result = list(compress(iter(data), mask))
    print(result)
15 0 Open
Comprehensions & generators easy

How to Generate Combinations with Replacement in Python

Generate all r-length combinations with repetition from a list using the standard library itertools.combinations_with_replacement function.

itertools combinations generator
Python
from itertools import combinations_with_replacement

items = ['A', 'B', 'C']
r = 2

combos = list(combinations_with_replacement(items, r))

for combo in combos:
    print(combo)

if __name__ == "__main__":
    print(f"Total combinations with replacement: {len(combos)}")
11 0 Open
Comprehensions & generators easy

How to Generate Permutations of Length r in Python

Generate all ordered arrangements of length r from a given list of elements using itertools.permutations.

permutations itertools combinatorics
Python
from itertools import permutations

def generate_permutations(elements, r):
    """Generate all r-length permutations of the given elements."""
    return list(permutations(elements, r))

if __name__ == "__main__":
    elements = ['A', 'B', 'C']
    r = 2
    result = generate_permutations(elements, r)
    print(f"Ele…
14 0 Open
Comprehensions & generators easy

How to generate combinations in Python with itertools

Generate all unique combinations of r items from a given list using itertools.combinations.

itertools combinations generators
Python
import itertools

def combinations_generator(items, r):
    return list(itertools.combinations(items, r))

if __name__ == "__main__":
    items = ['A', 'B', 'C', 'D']
    r = 2
    result = combinations_generator(items, r)
    for combo in result:
        print(combo)
    print(f"Total: {len(result)} combinations of {…
14 0 Open
AI & LLM integration patterns easy

How to Build a Prompt Template with Variable Slots in Python

Create a reusable LLM prompt template with named variable slots using Python's string.Template class and fill them with render() calls.

llm prompt-engineering templates
Python
from string import Template


class PromptTemplate:
    def __init__(self, template_text):
        self.template = Template(template_text)

    def render(self, **kwargs):
        return self.template.substitute(**kwargs)


if __name__ == "__main__":
    template = PromptTemplate(
        "You are a helpful assistant …
15 0 Open
AI & LLM integration patterns easy

How to Build an Entity Memory Dict to Store Facts in Python

Store and recall facts about entities using nested dictionaries with remember, recall, and forget functions in Python.

memory dict nested-dict
Python
facts = {}

def remember(entity, attribute, value):
    if entity not in facts:
        facts[entity] = {}
    facts[entity][attribute] = value

def recall(entity, attribute):
    return facts.get(entity, {}).get(attribute, None)

def forget(entity, attribute=None):
    if attribute is None:
        facts.pop(entity, …
13 0 Open
AI & LLM integration patterns easy

How to Mock OpenAI Tool Call Messages in Python

Create an assistant message with a function tool call in OpenAI's chat format, useful for testing and mocking.

openai tool-calls mock
Python
from openai import OpenAI


def mock_tool_call(tool_name: str, arguments: dict) -> dict:
    """Simulate a tool call message in OpenAI style."""
    return {
        "role": "assistant",
        "content": None,
        "tool_calls": [
            {
                "id": "call_" + "a1b2c3d4e5f6",
                "type…
14 0 Open
AI & LLM integration patterns easy

How to build a function calling schema dict in Python

Build an OpenAI-compatible function calling schema dictionary with a helper function that takes name, description, parameters, and required fields.

llm-api function-calling schema
Python
import json
from typing import Dict, Any, List, Optional


def build_function_schema(
    name: str,
    description: str,
    parameters: Optional[Dict[str, Any]] = None,
    required: Optional[List[str]] = None
) -> Dict[str, Any]:
    """Build an OpenAI-compatible function calling schema dictionary."""
    schema: …
15 0 Open
AI & LLM integration patterns easy

How to compute ROUGE recall in Python

Compute ROUGE recall by counting token overlap between a reference and candidate summary with pure Python.

rouge nlp evaluation
Python
def rouge_recall(reference, candidate):
    ref_tokens = reference.lower().split()
    cand_tokens = candidate.lower().split()

    ref_counts = {}
    for token in ref_tokens:
        ref_counts[token] = ref_counts.get(token, 0) + 1

    cand_counts = {}
    for token in cand_tokens:
        cand_counts[token] = cand…
12 0 Open
AI & LLM integration patterns easy

Route Tool Call Name to Python Handler Dict

Routes a tool call name to the correct Python handler function using a dictionary lookup, returning an error for unknown tools.

tool-calls llm-integration dictionary-mapping
Python
def get_name():
    return {"name": "Alice"}

def get_age():
    return {"age": 30}

def get_email():
    return {"email": "alice@example.com"}

handlers = {
    "get_name": get_name,
    "get_age": get_age,
    "get_email": get_email,
}

def route(tool_call):
    handler = handlers.get(tool_call["name"])
    if handl…
13 0 Open
AI & LLM integration patterns easy

Serialize and Format Data for LLM Prompts in Python

Use dataclasses and the json module to convert Python objects to JSON strings, parse them back, and format structured data into prompt-friendly text for LLM calls.

dataclasses json llm
Python
import json
from dataclasses import dataclass, asdict


@dataclass
class Recipe:
    """Simple data model to represent a recipe."""
    name: str
    cuisine: str
    prep_minutes: int


def to_json(recipe: Recipe) -> str:
    """Serialize a Recipe to a JSON string."""
    return json.dumps(asdict(recipe), indent=2)

…
14 0 Open
Automation & scripting easy

Automatically Generate Hardware Inventory Reports in Python

Generate a system hardware report including OS version, CPU cores, RAM, and disk usage using platform and psutil.

hardware inventory psutil
Python
import platform
import psutil  # requires: pip install psutil
from datetime import datetime

def generate_hardware_report():
    report_lines = []
    report_lines.append(f"Report Generated: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
    report_lines.append(f"System: {platform.system()} {platform.release()} ({pl…
55 0 Open
Automation & scripting easy

Automatically Log CPU, RAM, and Disk Usage Every Minute in Python

This script logs CPU, RAM, and disk usage to a CSV file every 60 seconds using psutil and Python's standard library.

psutil automation monitoring
Python
import psutil
import time
import csv
from pathlib import Path

LOG_FILE = Path("system_usage_log.csv")
INTERVAL_SECONDS = 60

def log_system_usage():
    """Write CPU, RAM, and disk usage to CSV every minute."""
    file_exists = LOG_FILE.exists()
    with open(LOG_FILE, mode="a", newline="") as f:
        writer = cs…
51 0 Open
Automation & scripting easy

Batch Rename Hundreds of Files in Python

Rename all files with a given extension inside a folder using a sequential counter and a custom prefix.

automation files pathlib
Python
import os
from pathlib import Path

def batch_rename_files(directory: str, prefix: str, extension: str = ".txt") -> None:
    """Rename all files with given extension in directory to prefix_{counter}.ext."""
    path = Path(directory)
    if not path.is_dir():
        print(f"Directory '{directory}' does not exist.")
…
59 0 Open
Automation & scripting easy

Build a Command-Line Password Generator in Python

Generate cryptographically strong random passwords using Python's secrets module and print them for command-line use.

secrets password-generator automation
Python
import secrets
import string

def generate_password(length=16):
    """Generate a cryptographically strong random password."""
    alphabet = string.ascii_letters + string.digits + string.punctuation
    password = ''.join(secrets.choice(alphabet) for _ in range(length))
    return password

if __name__ == "__main__":…
50 0 Open
Automation & scripting easy

How to Auto Organize Downloads by File Extension in Python

A Python script that sorts files in a directory into subfolders based on their file extensions, creating folders automatically.

file-organization automation pathlib
Python
import os
import shutil
from pathlib import Path

def organize_downloads(download_dir="~/Downloads"):
    """Move files in a directory into subfolders based on file extension."""
    download_path = Path(download_dir).expanduser()
    
    if not download_path.exists():
        print(f"Directory not found: {download_p…
14 0 Open
Automation & scripting easy

How to Automatically Download Every Favicon from a List of Websites in Python

Download each website's favicon.ico file by constructing its URL, making a GET request, and saving the binary content locally.

web-scraping automation download
Python
import requests
from urllib.parse import urlparse
import os

websites = [
    "https://www.google.com",
    "https://www.github.com",
    "https://www.stackoverflow.com"
]

def download_favicon(url):
    parsed = urlparse(url)
    favicon_url = f"{parsed.scheme}://{parsed.netloc}/favicon.ico"
    response = requests.g…
39 0 Open
Automation & scripting easy

How to Batch Resize Images in Python with pathlib and Pillow

Batch resize all JPG images from a source folder and save to a destination folder using pathlib and Pillow.

pathlib pillow image-processing
Python
from pathlib import Path
from PIL import Image

def batch_resize_images(src_dir: str, dest_dir: str, size: tuple[int, int] = (800, 600)) -> None:
    src_path = Path(src_dir)
    dest_path = Path(dest_dir)
    dest_path.mkdir(parents=True, exist_ok=True)
    
    for img_path in src_path.glob("*.jpg"):
        if not …
12 0 Open
Automation & scripting easy

How to Build a Simple argparse CLI in Python

Create a beginner-friendly command-line tool with argparse that reads a file, optionally uppercases its lines, and prints a configurable number of lines.

argparse cli automation
Python
import argparse

def main():
    parser = argparse.ArgumentParser(
        description="Automate file processing with a simple CLI tool."
    )
    parser.add_argument("filename", help="Path to the input file")
    parser.add_argument("--uppercase", action="store_true", help="Convert text to uppercase")
    parser.add…
16 0 Open
Automation & scripting easy

How to Create a File Organizer That Sorts Files Automatically in Python

A Python script that scans a given folder, categorizes files by extension (Images, Documents, Audio, Video, Archives, Misc), and moves them into subfolders automatically.

file organization automation pathlib
Python
import os
import shutil
from pathlib import Path

FILE_CATEGORIES = {
    "Images": [".jpg", ".jpeg", ".png", ".gif", ".bmp"],
    "Documents": [".pdf", ".docx", ".txt", ".csv", ".xlsx"],
    "Audio": [".mp3", ".wav", ".flac", ".aac"],
    "Video": [".mp4", ".mkv", ".avi", ".mov"],
    "Archives": [".zip", ".tar", ".g…
46 0 Open
Automation & scripting easy

How to Generate an Inventory CSV of Installed pip Packages in Python

This script uses subprocess and csv to list all installed pip packages and write their names and versions into a CSV inventory file.

pip csv subprocess
Python
import subprocess
import csv

def get_installed_packages():
    """Return a list of (name, version) tuples for installed pip packages."""
    result = subprocess.run(
        ["pip", "list", "--format=freeze"],
        capture_output=True,
        text=True,
        check=True
    )
    packages = []
    for line in r…
14 0 Open

Browse by section

Each section groups closely related Python snippets.

Guide: free Python code samples library

Copy-ready Python snippets for learners and developers

PythonSkillset code samples are short, focused examples organised by topic and difficulty. Every snippet is server-rendered HTML — readable by search engines and easy to copy. Open any sample, read the notes, copy the code, then press Try in editor to run it in the browser with Pyodide.

How to use this library

  1. Pick a topic section — strings, lists, files, functions, and more
  2. Open a sample, read How it works, and copy the code block
  3. Run it in the IDE, tweak values, then take a related quiz or tutorial lesson

Samples vs tutorials and challenges

Samples are quick reference — one concept per page. For step-by-step teaching, use our Python tutorials. To test yourself, try quizzes or coding challenges. Clean up style with the Python formatter.