Memory view slice
Implement chunk_list that splits a list into consecutive sublists of a given chunk size.
Delete Middle Node
Implement a function that deletes a given non-tail node from a singly linked list in O(1) time.
Retry decorator
Implement @retry(times=3) that retries a function on exception.
Data pipeline
Implement a Pipeline class supporting pipe chaining with the | operator.
Default Argument Trap
Implement a function that safely accumulates items without the classic mutable default argument bug.
Multiprocessing Queue
Implement a function that uses a multiprocessing queue to compute factorials of a list of numbers in parallel.
TypeVar bounded generic
Learn to use TypeVar with bounds to write type-safe generic functions in Python.
Generator Pipeline
Implement a generator function that yields only even numbers from an input list, squared.
Fibonacci Generator
Create a generator function that yields Fibonacci numbers from 0 upward until a given limit.
Prime Sieve Generator
Implement a generator function that yields prime numbers from 2 up to a specified limit, using an efficient sieve approach.
Pairwise Sequence Pairs
Write a generator function pairwise that yields each consecutive overlapping pair from any iterable as lists.
Groupby Consecutive
Write a generator function that yields (value, list_of_occurrences) for each run of consecutive equal items.
Collatz Generator
Implement a generator function that yields the Collatz sequence starting from a given positive integer.
File Line Reader Generator
Implement a generator function that reads a file-like object and yields each non-empty line without loading the whole file into memory.
Tree inorder generator
Write a generator function that yields a binary tree's node values in inorder traversal.
Cartesian Product Generator
Implement a generator function that yields the Cartesian product of multiple input iterables without precomputing all results.
Graph DFS Generator
Implement a generator function that performs a depth-first traversal of a graph without recursion.
Once Decorator: Run a Function Only Once
Implement a decorator that caches and returns the result of the first call for subsequent calls.
Timing Decorator
Implement a decorator that prints the execution time of a function.
Memoize with TTL
Implement a decorator that caches function results for a limited time, returning cached values within the TTL and recomputing after expiry.
LRU Memoize
Implement an LRU memoization decorator that caches results for a fixed number of arguments.
Rate Limit Decorator
Implement a decorator that enforces a maximum number of calls per second for any function.
Cache result decorator
Create a decorator that stores results of function calls keyed by positional arguments.
Profile time decorator
Create a decorator that tracks how many times a function is called and its cumulative execution time.
Showing 193–216 of 365 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.