Skip to main content

Snakers 🐍

Interactive Python exercises with Ruff linting - Learn Python by fixing and completing code!

Installation

# Initialize a virtual enviorentment
python3 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install the package
python3 -m pip install snakers

Usage

Initialize the exercises

# Create exercises directory and files in current directory
snakers init

# Create in a specific directory
snakers init --target /path/to/directory

Run the next exercise

# If installed via pip
snakers run

# Or using the module
python -m snakers run

Run a specific exercise

snakers run 01_variables/01_basic_types

Watch mode (auto-check on file changes)

snakers watch

List all exercises

snakers list

Reset progress

snakers reset

Manage solutions

# List all saved solutions
snakers solutions list

# View a specific solution
snakers solutions show 01_basic_types

# Reset all solutions
snakers solutions reset

Get help

# General help
snakers help

# Topic-specific help
snakers help init
snakers help solutions

Exercise Structure

Exercises are organized in the exercises/ directory by topic:

  • 00_intro/ - Introduction and environment setup
  • 01_variables/ - Variables, types, basic operations
  • 02_collections/ - Lists, dictionaries, tuples, sets
  • 03_functions/ - Function definitions, parameters, returns
  • 04_control_flow/ - Conditionals, loops, flow control
  • 05_exceptions/ - Error handling and exceptions
  • 06_classes/ - Object-oriented programming
  • 07_functional/ - Functional programming concepts
  • 08_file_io/ - File operations and data formats
  • 09_modules_packages/ - Imports, packages, modules
  • 10_advanced/ - Decorators, generators, advanced concepts
  • 11_testing/ - Unit testing and test-driven development
  • 12_concurrency/ - Threading, multiprocessing, async programming
  • 13_data/ - Data processing and analysis
  • 14_web/ - HTTP clients and web programming
  • 15_stdlib/ - Standard library modules
  • 16_project_management/ - Virtual environments, packaging, project structure
  • 17_design_patterns/ - Common design patterns
  • 18_regex/ - Regular expressions

Each exercise file contains:

  • Learning objectives
  • TODO items to complete
  • Hints and tips
  • Test cases

How It Works

  1. Find TODOs: Each exercise has # TODO comments marking what you need to implement
  2. Fix the code: Replace TODOs with working Python code
  3. Pass Ruff checks: Your code must pass Ruff linting (style, formatting, basic errors)
  4. Run successfully: The exercise file must execute without runtime errors
  5. Progress tracking: Completed exercises are automatically tracked

Ruff Configuration

Snakers uses Ruff for:

  • Code formatting
  • Style checking (PEP 8)
  • Error detection
  • Import sorting
  • Modern Python practices

Contributing

  1. Fork the repository
  2. Add new exercises in the appropriate topic directory
  3. Follow the existing exercise format
  4. Test your exercises
  5. Submit a pull request

Exercise Template

"""
Exercise N: Title

Description of what the student will learn.

Tasks:
1. Task description
2. Another task

Hints:
- Helpful hint
- Another hint
"""

# TODO: Implementation task

def example_function():
    # TODO: Implement this function
    pass

if __name__ == "__main__":
    # Test code here
    pass

Happy coding! 🐍✨

Metadata

Release files for snakers 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for snakers 0.1.6
File Size Uploaded
snakers-0.1.6.tar.gz 76.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for snakers 0.1.6
File Interpreter ABI Platform
snakers-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 181.5 kB

Release files / snakers-0.1.6.tar.gz

Download URL snakers-0.1.6.tar.gz
Size 76.9 kB
Tags Source
SHA-256 checksum
How to use checksums
4bd46fad5c0466630a65bcb9616eba34cd1075a0bae1748d0e74587452f2a6a2
BLAKE2b-256 checksum
How to use checksums
d35ab718120256e7cde83e5fe79da22c38b26018bf40fae16295e9d977d39be2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.16

Release files / snakers-0.1.6-py3-none-any.whl

Download URL snakers-0.1.6-py3-none-any.whl
Size 104.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c51e2314ed613da2f067c6c334feb14307ab8e11443b2d43536fbca8d3000abb
BLAKE2b-256 checksum
How to use checksums
7e521b9f6c0208b72a6c287f908f9c2eac2679ef3e98c32b9db7576c513640a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.16

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page