Practice Arena

Python Coding Challenges

Write real Python in the browser. Instant feedback. From beginner to expert.

925 challenges 556 easy 323 medium 46 hard
Decorators & Context Managers easy

Print Args Decorator

Write a decorator that prints function name and arguments, then returns the original result.

decorators functions wrappers
+10 pts 10m
Decorators & Context Managers easy

File Open Context Manager

Create a class that acts as a context manager for opening a virtual file in memory.

context-manager file-io python
+10 pts 15m
Decorators & Context Managers medium

Temporary directory manager

Implement a context manager that creates a temporary directory and automatically removes it even on errors.

context-manager tempdir file-io
+20 pts 20m
Decorators & Context Managers easy

Timer Context Manager

Implement a context manager that measures execution time of a with block and stores it.

context-manager timing measurement
+10 pts 15m
Decorators & Context Managers easy

Suppress stderr manager

Implement a context manager that suppresses all output written to stderr during its block.

context-managers stderr redirect
+8 pts 10m
Decorators & Context Managers easy

Context Decorator Dual

Implement a timing decorator and a context manager that both record elapsed time in seconds.

decorator context-manager time
+10 pts 15m
Decorators & Context Managers easy

Count calls decorator

Implement a decorator that counts and reports how many times the wrapped function is called.

decorator closure function
+10 pts 15m
Decorators & Context Managers easy

Log Calls Decorator

Create a decorator that prints call details and returns the original result.

decorators logging function-wrappers
+10 pts 15m
Decorators & Context Managers medium

Context manager from generator

Implement a context manager that yields a value and ensures cleanup, using a generator-based approach.

context-manager generator contextlib
+20 pts 20m
Decorators & Context Managers medium

Benchmark decorator

Implement a benchmarking decorator that records call count and timing statistics per function.

decorators timing functools
+25 pts 25m
Decorators & Context Managers easy

Lock Context Manager

Implement a Lock class with acquire/release and context manager support.

context-manager threading lock
+8 pts 12m
Decorators & Context Managers easy

Class-based decorator with call validation

Build a class-based decorator that validates a single argument's type and logs successful invocation.

decorators class validation
+8 pts 15m
Error Handling & Exceptions easy

Safe Integer from String

Implement safe_int that converts a string to an integer, returning a default value on any failure, with support for an optional base.

exceptions parsing default-value
+10 pts 15m
Error Handling & Exceptions easy

Safe divide function

Implement safe_divide that returns None on ZeroDivisionError and TypeError.

try-except division error-handling
+8 pts 10m
Error Handling & Exceptions easy

Safe int parser

Implement safe_parse_int that converts a string to an int, returning a default value on failure.

exceptions parsing validation
+10 pts 10m
Error Handling & Exceptions easy

Safe Float Parser

Write a function that safely converts a string to a float, returning None for invalid inputs.

float exception parsing
+10 pts 10m
Error Handling & Exceptions easy

Divide with zero check

Write a function that safely divides two numbers, catching division by zero.

exceptions division error-handling
+8 pts 10m
Error Handling & Exceptions easy

Key error handler

Implement a safe dictionary access function that returns a default value on missing keys.

exceptions dict fallback
+8 pts 10m
Error Handling & Exceptions easy

Else on try block

Implement a function that uses try-except-else to safely divide two numbers and return a result or error description.

exception-handling try-except-else division
+8 pts 10m
Error Handling & Exceptions easy

Parse JSON safely

Implement a robust JSON string parser that returns a fallback on invalid input.

json exceptions try-except
+8 pts 10m
Error Handling & Exceptions easy

Exit handler registration

Write a function that registers a callback to run at interpreter exit and returns True on success.

atexit exceptions cleanup
+8 pts 12m
Error Handling & Exceptions easy

Parse Error Recovery

Parse a whitespace-separated string into a list of valid integers, skipping invalid tokens.

parsing exceptions error-handling
+10 pts 15m
Error Handling & Exceptions easy

Validation result object

Implement a ValidationResult class that tracks validation errors and can report validity.

validation error-handling oop
+8 pts 15m
Error Handling & Exceptions medium

Resource Cleanup Manager

Implement a context manager that tracks and releases resources reliably, and can report cleanup actions.

context-managers exceptions cleanup
+20 pts 20m

Showing 457–480 of 925 challenges

Guide: free Python coding challenges

Practice Python by solving problems

PythonSkillset challenges are hands-on coding exercises from beginner to advanced. Open a challenge, read the problem, write Python in the split-pane editor, and run tests with Pyodide — no install required.

How to use the arena

  1. Pick a category — basics, algorithms, strings, and more
  2. Open a challenge, read the statement, and edit the starter code
  3. Run tests, fix failures, then try a related quiz or tutorial lesson

Challenges vs tutorials and quizzes

Challenges test what you can build under constraints. For guided teaching, use our Python tutorials. For quick checks, try quizzes or copy snippets from code samples.