Print Args Decorator
Write a decorator that prints function name and arguments, then returns the original result.
File Open Context Manager
Create a class that acts as a context manager for opening a virtual file in memory.
Temporary directory manager
Implement a context manager that creates a temporary directory and automatically removes it even on errors.
Timer Context Manager
Implement a context manager that measures execution time of a with block and stores it.
Suppress stderr manager
Implement a context manager that suppresses all output written to stderr during its block.
Context Decorator Dual
Implement a timing decorator and a context manager that both record elapsed time in seconds.
Count calls decorator
Implement a decorator that counts and reports how many times the wrapped function is called.
Log Calls Decorator
Create a decorator that prints call details and returns the original result.
Context manager from generator
Implement a context manager that yields a value and ensures cleanup, using a generator-based approach.
Benchmark decorator
Implement a benchmarking decorator that records call count and timing statistics per function.
Lock Context Manager
Implement a Lock class with acquire/release and context manager support.
Class-based decorator with call validation
Build a class-based decorator that validates a single argument's type and logs successful invocation.
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.
Safe divide function
Implement safe_divide that returns None on ZeroDivisionError and TypeError.
Safe int parser
Implement safe_parse_int that converts a string to an int, returning a default value on failure.
Safe Float Parser
Write a function that safely converts a string to a float, returning None for invalid inputs.
Divide with zero check
Write a function that safely divides two numbers, catching division by zero.
Key error handler
Implement a safe dictionary access function that returns a default value on missing keys.
Else on try block
Implement a function that uses try-except-else to safely divide two numbers and return a result or error description.
Parse JSON safely
Implement a robust JSON string parser that returns a fallback on invalid input.
Exit handler registration
Write a function that registers a callback to run at interpreter exit and returns True on success.
Parse Error Recovery
Parse a whitespace-separated string into a list of valid integers, skipping invalid tokens.
Validation result object
Implement a ValidationResult class that tracks validation errors and can report validity.
Resource Cleanup Manager
Implement a context manager that tracks and releases resources reliably, and can report cleanup actions.
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
- Pick a category — basics, algorithms, strings, and more
- Open a challenge, read the statement, and edit the starter code
- 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.